Ошибка сканирования github.com/golang/protobuf/proto/testdata: не удается найти пакет "." - PullRequest
0 голосов
/ 27 мая 2018

При запуске glide install в моем проекте я получаю следующую ошибку:

[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

При проверке исходного кода protobuf я фактически вижу, что такого пакета не существует.Однако я не использую Protobuf напрямую, поэтому ошибка должна исходить из одной из зависимостей, которые я использую.

При запуске glide tree в моем проекте есть только один экземпляр github.com/golang/protobuf/proto/testdata:

|-- 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)

, который на самом деле не помогает мне точно определить источник проблемы.

Есть ли у вас какие-либо предложения по устранению проблем?

Мой проект компилировался простонормально до недели или две назад (я использую Docker для развертывания в производственной среде, поэтому glide install запускался каждый раз и никогда до этого не выходил из строя, и я недавно не добавил никаких новых зависимостей).

1 Ответ

0 голосов
/ 27 мая 2018

До вашего собственного PR (995) была ошибка глиссады 968

Похоже, что это вызвано изменением структуры хранилища, то естьсубпакет перемещается или удаляется полностью.

Методы обхода, предложенные Эллиот Райт (seeruk) :

Если пакет, который имеетОбновление находится под вашим собственным контролем, но с тех пор я обнаружил, что проще использовать некоторые новые функции Go, такие как псевдонимы типов, чтобы облегчить боль при рефакторинге.
Итак, вместо того, чтобы просто перемещать пакет, переместите его, а затемсоздайте псевдонимы для нового местоположения в старом, чтобы ваш старый код все еще работал.
Затем постепенно перемещайте объекты.По сути, просто пометьте вещи как устаревшие, но убедитесь, что они еще можно использовать в течение некоторого времени, пока вы не перенесете новый код.

Если пакет находится под , а не в вашем контроле, то вывсегда можно клонировать нужную версию вручную в папку вашего поставщика и вносить обновления в свой код.
Как только вы закончите, Glide должен позволить вам обновить снова.
Если это намного сложнее, иногда даже прощевернитесь к использованию go get до тех пор, пока не закончите обновление пакетов, и полагайтесь на свое $GOPATH содержимое.

Это далеко от идеала, но есть способы, как обойти это, по крайней мере.
ВМежду тем, я также высказал проблему по этому поводу в dep.
Я думаю, что они ищут способ отключить такую ​​проверку, если вы просто хотите, чтобы инструмент доверял вам как разработчику.

Таким образом, вы можете проверить, есть ли у вас такая же проблема, используя godep , или даже передовой vgo .

...