douyue7408 2018-05-27 07:53
浏览 1256


When running glide install on my project, I get the following error:

[ERROR] Error scanning cannot find package "." in:
[ERROR] Failed to retrieve a list of dependencies: Error resolving imports

When checking protobuf's source code, I can in fact see that there is no such package. I however don't directly use protobuf, so the error must come from one of the dependencies I use.

When running glide tree on my project, there is only one instance of

|--   (/Users/bevernie/Programmation/work/src/
|   |--   (/Users/bevernie/Programmation/work/src/
|   |   |-- (Recursion)   (/Users/bevernie/Programmation/work/src/
|   |--   (/Users/bevernie/Programmation/work/src/
|   |   |-- (Recursion)   (/Users/bevernie/Programmation/work/src/   (glide get
|--   (/Users/bevernie/Programmation/work/src/
|   |--   (/Users/bevernie/Programmation/work/src/
|   |   |--   (/Users/bevernie/Programmation/work/src/
|   |   |   |-- (Recursion)   (/Users/bevernie/Programmation/work/src/
|   |   |-- (Recursion)   (/Users/bevernie/Programmation/work/src/

which doesn't really help me pinpoint the source of the problem.

Do you have any suggestions as of how to fix the issues?

My project was compiling just fine until a week or two ago (I use Docker to deploy in production, so the glide install was run every time and never failed before that, and I haven't added any new dependency recently).

  • 写回答

1条回答 默认 最新

  • doushen9863 2018-05-27 08:33

    Before your own PR (995), there was glide issue 968

    It looks like it's caused by a repository's structure changing, i.e. a sub-package being moved, or removed entirely.

    Workarounds proposed by Elliot Wright (seeruk):

    If the package that has been updated is under your own control, then I've since found it easier to use some of the newer Go features like type aliases to ease the pain from refactoring.
    So, instead of just moving a package, move it and then make aliases to the new location in the old one so that your older code still works.
    Then, gradually move things over. Basically just mark things as deprecated but make sure they're still usable for a little while until you've ported new code over.

    If the package is not in your control, then you can always clone the version you want manually to your vendor folder and make your updates in your code.
    Once you're done, Glide should let you update again.
    If it's much more complex, sometimes it's even easier to revert to using go get until you're done updating packages, and rely on your $GOPATH contents.

    It's far from ideal, but there are ways you can work around it at least.
    In the mean time, I've also made an issue about this on dep.
    I think they're looking into a way of disabling this kind of check if you just want the tool to trust you as the developer.

    So you can check if you have the same issue using godep, or even the bleeding-edge vgo.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?



  • ¥40 求一款能支持ios15以上的屏蔽越狱插件。比较好用的
  • ¥15 C++ QT对比内存字符(形式不定)
  • ¥30 C++第三方库libiconv 远程安装协助
  • ¥15 这2句代码如何理解
  • ¥15 duilib开发文本字串超过长度显示
  • ¥20 mysql的.ibd文件为啥那么多
  • ¥15 C++中采用栈和BFS算法求解迷宫问题
  • ¥15 关于#java#的问题:这是跳转失败出现的界面这是哪个出现问题的servlet(开发工具-ide)
  • ¥15 EBS R12费用采购跨月冲销
  • ¥15 python中用mplfinance如何做到多股同列?