本地导入非本地包

时间:2013-02-04 00:57:55

标签: heroku go

我知道应该避免本地进口,但在这种情况下需要特殊情况。这是一个私人仓库,由于服务器上缺少私钥,heroku buildpack在使用绝对URL时在go get ./...阶段失败。

现在我收到此错误local import ".." in non-local package

所有导入路径都更改为本地版本,那么剩下哪些资格将资格认定为“非本地”?我该如何解决这个问题?

3 个答案:

答案 0 :(得分:4)

我修好了。问题是根包在$GOPATH/src/<host>/<user>/<package>。一旦我将包移到~/Git/<package>,错误就消失了(因此,“使它成为本地”)。

答案 1 :(得分:1)

  

本地程序包导入路径是绝对文件系统路径或路径   以./或../开头。非本地包导入路径不是   本地包导入路径。

     

cmd/go/pkg.go

答案 2 :(得分:0)

彼得索是对的。查看生成该错误消息的代码,如果正在加载的包不是以/ ./或../开头,而是导入了一个包含的包。在你的问题的情况下,有几件事可能导致它。

  1. go get导致使用非本地路径引用的依赖包进行构建,然后依次加载本地路径。
  2. 您将获得包含本地导入的非本地包路径。
  3. 我想也许您应该只修复服务器上丢失的私钥问题,而不是尝试使用本地路径。

    要正确调试,我需要知道您正在获得的软件包以及它们的传递依赖性。

    为什么你要使用go get进行本地路径安装(即go get ./...)?在这种情况下,go install或go build通常是你想要的。