【问题标题】:GO (Golang) vendor experiment failing on mac osxGO(Golang)供应商实验在 mac osx 上失败
【发布时间】:2016-09-12 05:38:06
【问题描述】:

在 osx 上使用 go 1.6.2 进行 go 供应商实验时遇到了一些问题。

这是我的目录结构:

/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 的来源可能是以前的 go 安装遗留下来的。随着时间的推移,我已经安装了各种版本的 go,有些是通过 gvm(go 版本管理器)安装的,有些是通过 homebrew 安装的。所以我卸载了 gvm 和它安装的 go 版本,也卸载了 go with homebrew 并使用 homebrew 重新安装了 1.6.2。

go 版本输出:

go version go1.6.2 darwin/amd64

哪个去:

/usr/local/bin/go

有什么想法在这里可能出了问题,或者我可能只是误解了供应商应该如何工作?

附:如果您需要更多信息,请告诉我,很乐意提供

【问题讨论】:

    标签: go osx-yosemite vendor


    【解决方案1】:

    它似乎正在寻找应用程序/src

    是的,go 正在 $GOPATH/src 中查找您的来源vendor 来源文件夹。

    一切都应该在$GOPATH/src

    vendor folder 意味着只能通过以“vendor”的父级为根的目录树中的代码导入。
    但它是您来源的一部分,因此应该在$GOPATH/src 下。

    【讨论】:

    • 谢谢,我搞定了。我查看了许多示例,这些示例似乎表明您可以删除 /src 文件夹。它点击了您的答案,您可以从供应商目录中删除 src,但供应商目录必须位于 /src 下。我真的很讨厌 golang 中的 vendoring 工作方式,这是一个小小的改进。我的新设置是让 home/me/projects 成为我的 gopath,在其下有一个 src 文件夹,然后在该文件夹下我将所有项目与他们自己的供应商文件夹一起保存,并具有单独的依赖项。这似乎有效。
    猜你喜欢
    • 1970-01-01
    • 2018-09-24
    • 1970-01-01
    • 2012-01-14
    • 1970-01-01
    • 2015-10-24
    • 1970-01-01
    • 1970-01-01
    • 2017-04-27
    相关资源
    最近更新 更多