我有以下文件结构:
- 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)
看起来主要是在错误的位置寻找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
main.go 的摘录:
package main
import (
"bufio"
"log"
"net/http"
"os"
"strings"
"text/template"
"viewmodels"
)
home.go 的摘录:
package viewmodels
import ()
正在进行的任何方向以及我如何解决这个问题都会很棒。感谢。
答案 0 :(得分:1)
您应该使用导入路径的完整包名称:"project/src/viewmodels"
在这种情况下,假设项目位于/Users/nicholasrucci/go/src
下,但我会以不同方式构建项目文件夹(例如,没有src文件夹)< / p>
或者,您可以将GOPATH设置为项目文件夹的完全限定路径,这样就可以将main.go设为import "viewmodels"
了。
答案 1 :(得分:0)
这对我来说很好用:
<强>的src /主/ main.go 强>
package main
import (
"viewmodels"
)
func main() {
viewmodels.Something()
}
<强>的src /的ViewModels / home.go 强>
package viewmodels
import ()
func Something() {
}
我猜这是你的env变量。