非本地包中的本地导入

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

现在我得到这个错误local import ".." in non-local package

所有导入路径都已更改为本地版本,那么还有什么可以使程序包成为“非本地”文件呢?我该如何解决?


LEATH
浏览 257回答 3
3回答

炎炎设计

我修好了它。问题是root软件包在中$GOPATH/src/<host>/<user>/<package>。一旦我将软件包移至~/Git/<package>错误处,错误就消失了(因此,将其“本地化”)。

猛跑小猪

彼得所以是对的。查看该错误消息的生成代码,如果所加载的软件包不是以/ ./或../开头,而是导入了该错误,则会发生该错误。就您的问题而言,可能是由多种原因引起的。go get 导致构建一个使用非本地路径引用的依赖包,然后依次加载本地路径。您将获得包含本地导入的非本地包路径。我认为也许您应该只解决服务器上丢失的私钥问题,而不要尝试使用本地路径。要正确调试,我需要知道您所获得的确切软件包以及它们的传递依存关系。最后一件事,为什么要使用go get进行本地路径安装(即go get ./...)?在这种情况下,通常需要安装或进行构建。

www说

本地包导入路径是绝对文件系统路径,或者是以./或../开头的路径。非本地程序包导入路径不是本地程序包导入路径。cmd/go/pkg.go
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go