为了账号安全,请及时绑定邮箱和手机立即绑定

非本地包中的本地导入

非本地包中的本地导入

Go
LEATH 2021-05-14 18:58:53
我知道应该避免本地进口,但是在这种情况下需要特殊情况。这是一个私有存储库,go get ./...由于服务器上缺少私有密钥,当与绝对URL一起使用时,heroku buildpack在该阶段失败。现在我得到这个错误local import ".." in non-local package。所有导入路径都已更改为本地版本,那么还有什么可以使程序包成为“非本地”文件呢?我该如何解决?
查看完整描述

3 回答

?
炎炎设计

TA贡献1808条经验 获得超4个赞

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


查看完整回答
反对 回复 2021-05-31
?
猛跑小猪

TA贡献1858条经验 获得超8个赞

彼得所以是对的。查看该错误消息的生成代码,如果所加载的软件包不是以/ ./或../开头,而是导入了该错误,则会发生该错误。就您的问题而言,可能是由多种原因引起的。

  1. go get 导致构建一个使用非本地路径引用的依赖包,然后依次加载本地路径。

  2. 您将获得包含本地导入的非本地包路径。

我认为也许您应该只解决服务器上丢失的私钥问题,而不要尝试使用本地路径。

要正确调试,我需要知道您所获得的确切软件包以及它们的传递依存关系。

最后一件事,为什么要使用go get进行本地路径安装(即go get ./...)?在这种情况下,通常需要安装或进行构建。


查看完整回答
反对 回复 2021-05-31
?
www说

TA贡献1775条经验 获得超8个赞

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

cmd/go/pkg.go


查看完整回答
反对 回复 2021-05-31
  • 3 回答
  • 0 关注
  • 256 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信