【问题标题】:golang "matched no packages" error with absolute path, fine with relative pathgolang“不匹配包”错误与绝对路径,相对路径很好
【发布时间】:2015-10-26 20:57:11
【问题描述】:

我有一棵 golang 代码树。我在 Mac (OS X 10.11) 上使用 golang 1.5.1。我可以使用以下命令在命令行上使用相对路径成功构建我的代码。

去安装./...

但是,如果我使用绝对路径,我会收到一条错误消息。例如,

去安装`pwd`/...]

警告:“/Users/eben/src/cbq-gui/src/github.com/couchbaselabs/cbq-gui/...”没有匹配的包

这似乎很奇怪,因为“。”和 `pwd` 应该评估相同的东西。我错过了什么?谢谢。

【问题讨论】:

    标签: go build


    【解决方案1】:

    pwd 将使用完整的绝对路径,但 go 工具需要相对于 $gopath 的路径。

    你真正想要的是go install github.com/couchbaselabs/cbq-gui/... 最有可能。假设你的 gopath 设置为/Users/eben/src/cbq-gui,这对我来说有点奇怪。

    大多数人的所有项目都使用一个 gopath。

    【讨论】:

    • 谢谢你,成功了!顺便说一句,多个 GOPATH 的原因是到目前为止我们一直在使用 go 1.4,并且我们依赖于某些外部包的旧版本,因此对于我们自己代码的不同版本,我们使用特定的 GOPATH 和保存的外部包版本.
    • 非常好。我们一直在通过将我们依赖的包复制到我们各个主包的源代码树中来解决类似的问题。我发现govendor 非常适合。然后每个项目都有自己的依赖版本。
    【解决方案2】:

    您需要使用 go mod 在 $GOPATH("/Users/eben/src/cbq-gui/") 中运行 go 安装命令。

    $ GO111MODULE=on go get -u github.com/couchbaselabs/cbq-gui/...
    

    我希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2012-01-11
      • 2018-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-25
      • 1970-01-01
      相关资源
      最近更新 更多