在osx上使用go 1.6.2进行供应商实验时遇到一些麻烦。
继承我的目录结构:
/project
/application
main.go
other.go
/vendor
/github.com
/vendor_name
/package_name
我的GOPATH设置为/Users/me/project/application
然而,当我尝试运行任何go工具(例如构建)时,它似乎在查看application/src
而不是application/vendor
,从而获得了大量的内容:
main.go:15:2: cannot find package "github.com/facebookgo/grace/gracehttp" in any of:
/usr/local/Cellar/go/1.6.2/libexec/src/github.com/facebookgo/grace/gracehttp (from $GOROOT)
/Users/me/project/application/src/github.com/facebookgo/grace/gracehttp (from $GOPATH)
正如你可以看到go env输出供应商实验默认开启,因为它应该只是它似乎没有工作:
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/me/project/application"
GORACE=""
GOROOT="/usr/local/Cellar/go/1.6.2/libexec"
GOTOOLDIR="/usr/local/Cellar/go/1.6.2/libexec/pkg/tool/darwin_amd64"
GO15VENDOREXPERIMENT="1"
CC="clang"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fno-common"
CXX="clang++"
CGO_ENABLED="1"
现在,funkiness的来源可能是以前的安装过程中的宿醉。我已经安装了各种版本的随着时间的推移,一些通过gvm(去版本管理器)和一些通过自制程序。所以我已经卸载了gvm以及它已经安装的版本,也没有安装与自制软件一起使用自制软件重新安装1.6.2。
go version output:
go version go1.6.2 darwin/amd64
走了:
/usr/local/bin/go
任何想法可能在这里出错,或者我或许只是误解了如何运作?
P.S。请知道您是否需要更多信息,很高兴提供
答案 0 :(得分:2)
它似乎在查看application / src
是的,go正在$GOPATH/src
查看vendor
来源文件夹的来源和。
一切都应该在$GOPATH/src
vendor folder 只能由目录树中的代码导入,该目录树的根目录是" vendor
"。
但它是您的来源的一部分,因此,应该在$GOPATH/src
下。