go - 我的主文件找不到我创建的导入到主文件中的另一个文件

标签 go

我有以下文件结构:

- project/
  - src/
    - main/
      - main.go
    - viewmodels/
      - home.go
  - public/

我的项目位于: ~/go/src/

当我试图运行我的主文件时它抛出错误:

src/main/main.go:10:2: cannot find package "viewmodels" in any of:
    /usr/local/Cellar/go/1.5.3/libexec/src/viewmodels (from $GOROOT)
    /Users/nicholasrucci/go/src/viewmodels (from $GOPATH)

看起来 main 正在错误的位置寻找 package viewmodels。据我了解,阅读后How to Write Go Code之前的程序运行正常,我的配置设置正确,但显然有问题。

.zshrc转到相关配置:

export GOPATH=$HOME/go
export PATH=$PATH:/usr/local/opt/go/libexec/bin
export PATH=$PATH:$GOPATH/bin
export PATH=$PATH:/usr/local/go/bin

ma​​in.go 的片段:

package main

import (
    "bufio"
    "log"
    "net/http"
    "os"
    "strings"
    "text/template"
    "viewmodels"
)

home.go 的片段:

package viewmodels

import ()

关于正在发生的事情以及我如何解决这个问题的任何方向都很好。谢谢。

最佳答案

您应该使用完整的包名称作为导入路径:"project/src/viewmodels" 在这种情况下,假设项目位于 /Users/nicholasrucci/go/src,但我会以不同的方式构建您的项目文件夹(例如没有 src 文件夹)

或者,您可以将 GOPATH 设置为项目文件夹的完全限定路径,这样您的 main.go 就可以像您拥有的那样import "viewmodels"

关于go - 我的主文件找不到我创建的导入到主文件中的另一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36346057/

相关文章:

linux - Go exec.CommandContext 在上下文超时后不会被终止

go - 构造日期时使用 int 作为月份

go - 如何通过go例程连接多个 slice

logging - os.Pipe 无法按预期使用日志包

mysql - 在 mysql 和 golang 中构建动态查询

MongoDB 在 Go 中列出具有给定前缀的数据库

go - channel 仅从 Println in go routine 接收抛出死锁异常

sorting - Golang - 按扇形排序

golang递归函数如何检查返回值?

postgresql - "runtime error: invalid memory address or nil pointer dereference"创建表