hyperledger-fabri c -readthedocs.io учебник, цепочка для разработчиков, не может найти пакет shim - ИСПРАВЛЕНО - PullRequest
3 голосов
/ 10 января 2020

Я разработал решение этой проблемы, когда создавал этот пост, но решил, что оставлю здесь свой слезный след, чтобы, возможно, помочь другим людям, столкнувшимся с тем же. В конечном итоге root проблемы были устаревшими инструкциями в руководстве, не отражающими изменений в базовых репозиториях.

Я работаю с этой страницы: https://hyperledger-fabric.readthedocs.io/en/release-1.4/chaincode4ade.html

Моя среда: - Сервер Ubuntu 18.04 (работает как виртуальная машина в виртуальной коробке) - go версия 1.13.5 - рабочий каталог: / home / fabri c -1 / go / src / sacc - $ GOPATH: / home / fabri c -1 / go

также в / home / fabri c -1 / go / sr c Я клонировал fabri c с:

git clone https://github.com/hyperledger/fabric.git

В моей директории ~ / go / source / sa cc я написал файл в соответствии с инструкциями со следующим импортом:

import (
    "fmt"

    "github.com/hyperledger/fabric/core/chaincode/shim"
    "github.com/hyperledger/fabric/protos/peer"
)

Поэтому, когда я впервые запустил команду

go get -u github.com/hyperledger/fabric/core/chaincode/shim

Я получил сообщение о том, что не смог найти пакет "shim". Я выполнил команду "find" в каталоге github.com и обнаружил, что он там есть, но в странном месте я попытался переместить каталог shim в другое удобное место, что привело к обычному безумию с кроличьей норе, когда вы делаете что-то вроде что ...

Проведя целый день, пытаясь установить код shim из других мест, я наконец понял (да!), что изменил оператор импорта для shim:

import (
    "fmt"

    "github.com/hyperledger/fabric/vendor/github.com/hyperledger/fabric-chaincode-go/shim"
    "github.com/hyperledger/fabric/protos/peer"
)

После этого 'go get' работал, находят, но 'go build' не удался - не мог найти 'peer' (вздох)

После перерыва на обед (и сопротивлялся искушению сделать водка) Я подумал, что они переставили вещи, так как они написали учебник. Я посмотрел поближе на пути и увидел, что есть каталоги github.com под другими каталогами github.com. Итак, вернувшись к github (которого я, наконец, не слишком боюсь), нашел репозитории, соответствующие подкаталогам:

https://github.som/hyperledger/fabric/fabric-chaincode-go
https://github.som/hyperledger/fabric/fabric-protos-go

Я клонировал их в свое окружение:

cd $GOPATH/src/github.com/hyperledger
git clone https://github.som/hyperledger/fabric/fabric-chaincode-go
git clone https://github.som/hyperledger/fabric/fabric-protos-go

Затем я пошел обратно и изменил операторы импорта в моем коде sa cc. go:

import (
    "fmt"

    "github.com/hyperledger/fabric-chaincode-go/shim"
    "github.com/hyperledger/fabric-protos-go/peer"
)

и HEY !!! ГОД !!! команды 'go get' и 'go build' работали просто отлично, компиляция прошла успешно, и теперь мы переходим к следующей проблеме (ну, хорошо, на самом деле завтра - темно и холодно, и я думаю, что я ') сделаю эту водку, которую я раньше не делал).

1 Ответ

0 голосов
/ 13 января 2020

Я также работаю с этой страницы .

При выполнении команды go get -u github.com/hyperledger/fabric/core/chaincode/shim я получил следующую ошибку.

package github.com/hyperledger/fabric/core/chaincode/shim: cannot find package "github.com/hyperledger/fabric/core/chaincode/shim" in any of: /usr/local/go/src/github.com/hyperledger/fabric/core/chaincode/shim (from $GOROOT) /home/ubuntu/go/src/github.com/hyperledger/fabric/core/chaincode/shim (from $GOPATH)

Я искал каталог "shim" со страницы github hyperledger и заметил, что путь к каталогу изменился.

Затем я обновил освобожденные строки файла sacc.go следующим образом:

import ( "fmt" "github.com/hyperledger/fabric-chaincode-go/shim" "github.com/hyperledger/fabric-protos-go/peer" )

После обновления go get -u github.com/hyperledger/fabric-chaincode-go/shim и go build у меня работали нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...