我正在重新学习 Go。我使用 gvm 安装了最新的 Go 版本 (1.7.1
)我希望使用 gin 构建一个简单的 rest api 应用程序.我使用 glide get https://github.com/gin-gonic/gin
( glide ) 安装它,并在我的项目根目录中创建了一个“vendor”文件夹。虽然运行我的应用程序,go run main.go
,但我遇到了这个错误
main.go:3:8: cannot find package "github.com/gin-gonic/gin" in any of:
/home/yowmamasita/.gvm/gos/go1.6.3/src/github.com/gin-gonic/gin (from $GOROOT)
/home/yowmamasita/.gvm/pkgsets/go1.6.3/global/src/github.com/gin-gonic/gin (from $GOPATH)
它没有解析刚刚创建的“vendor ”目录 glide
.
├── glide.lock
├── glide.yaml
├── main.go
├── README.md
└── vendor
└── github.com
└── gin-gonic
└── gin
不确定这里发生了什么,我认为在 1.5 之后,它应该能够在不执行任何操作的情况下解析从“vendor”目录导入的内容。我什至在我的 $GOPATH
/home/yowmamasita/.gvm/pkgsets/go1.7.1/global:/home/yowmamasita/goprojects
我在这里做错了什么?我也试过 1.6.3,但我得到了同样的错误。
最佳答案
请确认:
- 将工作区 (
/home/yowmamasita/goprojects
) 添加到$GOPATH
变量。 - 通常在工作空间下会有三个目录,分别是
bin
、pkg
和src
。 More details - 你可以省略
pkg
和bin
,但是使用vendor
包的项目或者你自定义的包必须放在下$GOPATH/src
,否则go
编译器无法识别。
结构应该是这样的:
$GOPATH
└── src
└── YOURPROJECT1
├── source codes #1
└── vendor/
└── YOURPROJECT2
├── source codes #2
└── vendor/
关于go - vendor 目录未用于解析 go build 中的导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39864668/