在我的项目上运行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)
每次都运行,在此之前从未失败,我没有添加任何新的依赖项最近)。
答案 0 :(得分:1)
在您自己的PR (995)之前,有glide issue 968
它看起来像是由存储库的结构更改引起的,即子包被移动或完全删除。
Elliot Wright (seeruk
)提出的解决方法:
如果已更新的软件包在您自己的控制之下,那么我发现更容易使用一些较新的Go功能,例如类型别名,以减轻重构带来的痛苦。
因此,不要只是移动一个包,移动它,然后将别名设为旧位置的新位置,以便旧代码仍可正常工作。
然后,逐渐移动。基本上只是将事物标记为已弃用,但要确保它们仍然可用一段时间,直到您移植新代码为止。如果您的控件中的软件包不,那么您始终可以手动将所需的版本克隆到供应商文件夹,并在代码中进行更新。
一旦你完成,Glide应该让你再次更新 如果它复杂得多,有时甚至更容易恢复使用go get
,直到您完成更新包并依赖$GOPATH
内容。它远非理想,但至少有一些方法可以解决这个问题 与此同时,我也在dep上提出了这个问题 我认为如果您只是希望该工具能够信任您作为开发人员,他们正在寻找一种禁用此类检查的方法。