扫描github.com/golang/protobuf/proto/testdata时出错:无法找到包“。”

时间:2018-05-27 07:53:31

标签: go protocol-buffers glide-golang

在我的项目上运行num_imgs_per_cls时,出现以下错误:

glide install

在检查protobuf的源代码时,我实际上可以看到没有这样的包。但是我不直接使用protobuf,因此错误必须来自我使用的依赖项之一。

在我的项目上运行[ERROR] Error scanning github.com/golang/protobuf/proto/testdata: cannot find package "." in: /Users/bevernie/.glide/cache/src/https-github.com-golang-protobuf/proto/testdata [ERROR] Failed to retrieve a list of dependencies: Error resolving imports 时,只有glide tree的一个实例:

github.com/golang/protobuf/proto/testdata

这并没有真正帮助我找出问题的根源。

您对如何解决问题有什么建议吗?

我的项目编译得很好,直到一两个星期前(我使用Docker在生产中部署,所以|-- github.com/golang/protobuf/proto (/Users/bevernie/Programmation/work/src/github.com/golang/protobuf/proto) | |-- github.com/golang/protobuf/proto/test_proto (/Users/bevernie/Programmation/work/src/github.com/golang/protobuf/proto/test_proto) | | |-- (Recursion) github.com/golang/protobuf/proto (/Users/bevernie/Programmation/work/src/github.com/golang/protobuf/proto) | |-- github.com/golang/protobuf/ptypes/any (/Users/bevernie/Programmation/work/src/github.com/golang/protobuf/ptypes/any) | | |-- (Recursion) github.com/golang/protobuf/proto (/Users/bevernie/Programmation/work/src/github.com/golang/protobuf/proto) github.com/golang/protobuf/proto/testdata (glide get github.com/golang/protobuf/proto/testdata) |-- github.com/golang/protobuf/ptypes/any (/Users/bevernie/Programmation/work/src/github.com/golang/protobuf/ptypes/any) | |-- github.com/golang/protobuf/proto (/Users/bevernie/Programmation/work/src/github.com/golang/protobuf/proto) | | |-- github.com/golang/protobuf/proto/test_proto (/Users/bevernie/Programmation/work/src/github.com/golang/protobuf/proto/test_proto) | | | |-- (Recursion) github.com/golang/protobuf/proto (/Users/bevernie/Programmation/work/src/github.com/golang/protobuf/proto) | | |-- (Recursion) github.com/golang/protobuf/ptypes/any (/Users/bevernie/Programmation/work/src/github.com/golang/protobuf/ptypes/any) 每次都运行,在此之前从未失败,我没有添加任何新的依赖项最近)。

1 个答案:

答案 0 :(得分:1)

在您自己的PR (995)之前,有glide issue 968

  

它看起来像是由存储库的结构更改引起的,即子包被移动或完全删除。

Elliot Wright (seeruk)提出的解决方法:

  

如果已更新的软件包在您自己的控制之下,那么我发现更容易使用一些较新的Go功能,例如类型别名,以减轻重构带来的痛苦。
  因此,不要只是移动一个包,移动它,然后将别名设为旧位置的新位置,以便旧代码仍可正常工作。
  然后,逐渐移动。基本上只是将事物标记为已弃用,但要确保它们仍然可用一段时间,直到您移植新代码为止。

     

如果您的控件中的软件包,那么您始终可以手动将所需的版本克隆到供应商文件夹,并在代码中进行更新。
  一旦你完成,Glide应该让你再次更新   如果它复杂得多,有时甚至更容易恢复使用go get,直到您完成更新包并依赖$GOPATH内容。

     

它远非理想,但至少有一些方法可以解决这个问题   与此同时,我也在dep上提出了这个问题   我认为如果您只是希望该工具能够信任您作为开发人员,他们正在寻找一种禁用此类检查的方法。

因此,您可以使用godep或甚至最前沿的vgo来检查您是否遇到同样的问题。