go - vendor 目录未用于解析 go build 中的导入

标签 go dependency-management glide-golang

我正在重新学习 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,但我得到了同样的错误。

最佳答案

请确认:

  1. 将工作区 (/home/yowmamasita/goprojects) 添加到 $GOPATH 变量。
  2. 通常在工作空间下会有三个目录,分别是binpkgsrcMore details
  3. 你可以省略pkgbin,但是使用vendor包的项目或者你自定义的包必须放在下$GOPATH/src,否则go编译器无法识别。

更多讨论可以看herehere

结构应该是这样的:

 $GOPATH
 └── src
     └── YOURPROJECT1
            ├── source codes #1
            └── vendor/

     └── YOURPROJECT2
            ├── source codes #2
            └── vendor/

关于go - vendor 目录未用于解析 go build 中的导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39864668/

相关文章:

go - 从 slice 中选择随机值并在 cli 上打印

file - 如何在 golang 的 os.FileMode 中设置 gid 和 uid?

go - 为什么 go 程序将输出打印到终端屏幕而不是/dev/stderr?

java - 尽管 “Update Dependencies”返回成功,Eclipse仍无法识别Gradle依赖关系

google-app-engine - 是否可以将 Go vendor 库与 Google App Engine 一起使用?

go - 如何使用 glide golang 安装私有(private)仓库

sql - golang中的sql事务中的批量更新

Golang 和并发/并行

c# - 使用绝对路径构建依赖项

java - 如何防止 Ivy 下载同一依赖项的多个版本?