hyperledger-archives / education-sawtooth-simple-supply

https://wiki.hyperledger.org/display/LMDWG
Apache License 2.0
51 stars 61 forks source link

Protobuf generation error #42

Closed ghost closed 4 years ago

ghost commented 4 years ago

Hello

When docker-compose up is executed some containers exist because of:

AttributeError: module 'google.protobuf.descriptor' has no attribute '_internal_create_key'

danintel commented 4 years ago

That probably happens when using a newer version of the protoc compiler with the older version of the protobuf library.

ghost commented 4 years ago

That's right. it's exactly versions problem. Thanks

AqeelKazmi commented 4 years ago

Hey, i am also facing this issue simple-supply-rest-api not starting #43

Currently i have running 3.12.2 version of protobuf ..But unable to find any protobuf-compiler or protoc compiler on my machine....And most importantly why facing this issue, while using docker environment. Please suggest the solution

ghost commented 4 years ago

@AqeelKazmi Hi

I extracted the python requirements and teawed a bit to make it work. For shell container requirements.txt For the rest, actually what we need to change is the version of protobuf==3.12.2 in others than shell container requirements.txt

AqeelKazmi commented 4 years ago

@jorgeluisacostaalonso thanks for the reply, It means we cannot go with docker, we have to install all dependencies manually ?

ghost commented 4 years ago

I 've copied and installed into the image For shell dockerfile COPY shell/requirements.txt /shell/requirements.txt <= shell's requirements RUN pip3 install -r /shell/requirements.txt

For others than shell COPY reqs/requirements.txt /requirements.txt <= others requirements RUN pip3 install -r /requirements.txt

I've just fixed container dependencies to fix version error

raysgit commented 4 years ago

@AqeelKazmi Hi

I extracted the python requirements and teawed a bit to make it work. For shell container requirements.txt For the rest, actually what we need to change is the version of protobuf==3.12.2 in others than shell container requirements.txt

Hi, I was also having this issue. See #43. I understand the issue. But I'm still a little confused about the solution. Both of these file have protobuf=3.12.2. I was expecting one to be different.

Thanks for the answer also!

ghost commented 4 years ago

It was exactly that my problem about the "not found key in descriptor ....." when containers were trying to start.

So by pairing python version dependencies in containers you should manage that problem.

AqeelKazmi commented 4 years ago

Thanks it worked....

raysgit commented 4 years ago

Still having the same problem, after trying the above solutions, and other suggestions from the web. If I do an interactive connection to the docker containers, I see protobuf 3.6 still installed. I built a separate hello world container running protobuf and it works. But I still can't get the simple supply example up.
Recognizing that my issue is more about my local environment.

Any way you could copy paste into a comment your working dockerfiles for shell and rest-api? And the relevant section from docker-compose?
Thanks in advance!

amandaSFer commented 4 years ago

@AqeelKazmi Hi

I extracted the python requirements and teawed a bit to make it work. For shell container requirements.txt For the rest, actually what we need to change is the version of protobuf==3.12.2 in others than shell container requirements.txt

Hi @jorgeluisacostaalonso

I tried this yet I'm still facing the same issue. Could you please either copy paste or share the docker files for shell and the rest-api if possible?

Thank you