我读到的关于供应商目录的所有内容都让我明白,如果我有一个目录:
$GOPATH/src/vendor
并将我的依赖项放在那里(我正在使用godeps),在执行时go run
,应该先检查该目录。
如果我在我拥有的 Docker 映像中运行我的代码,这很好。然而,现在我尝试在我的 Windows 机器上运行相同的代码,go 只是忽略了vendor/
目录,并且找不到依赖项。
我究竟做错了什么?
main.go:7:2: cannot find package "gopkg.in/alecthomas/kingpin.v2" in any of:
C:\Go\src\gopkg.in\alecthomas\kingpin.v2 (from $GOROOT)
C:\Users\js\dev\my_project\rest\src\gopkg.in\alecthomas\kingpin.v2 (from $GOPATH)
C:\Users\js\dev\go\src\gopkg.in\alecthomas\kingpin.v2
当我尝试这样做时的输出是:
go run main.go
此目录vendor/
中存在一个目录。
go version go1.7 windows/amd64
我运行的确切命令(在 Windows cmd.exe 中)
> cd C:\Users\js\dev\my_project\rest\
> set GOPATH=C:\Users\js\dev\my_project\rest\;c:\Users\js\dev\go
> cd src
> dir
...
2016-09-01 23:20 2 923 main.go
...
2016-09-03 01:27 <DIR> vendor
> go run main.go