OpenBazaar / OpenBazaar-Server

(Deprecated) OpenBazaar 1.0 Server daemon for communication with OpenBazaar-Client
MIT License
609 stars 175 forks source link

TypeError with protobuf 3.0.0, protobuf 3.0.0b2 works #521

Open nguha opened 7 years ago

nguha commented 7 years ago

With the current master on Ubuntu 16.04.2 LTS I get:

# python openbazaard.py start --help
Traceback (most recent call last):
  File "openbazaard.py", line 11, in <module>
    from api.ws import WSFactory, AuthenticatedWebSocketProtocol, AuthenticatedWebSocketFactory
  File "/root/OpenBazaar-Server/api/ws.py", line 17, in <module>
    from dht.node import Node
  File "/root/OpenBazaar-Server/dht/node.py", line 8, in <module>
    from protos import objects
  File "/root/OpenBazaar-Server/protos/objects.py", line 17, in <module>
    import countries as countries__pb2
  File "/root/OpenBazaar-Server/protos/countries.py", line 36, in <module>
    type=None),
  File "/usr/local/lib/python2.7/dist-packages/google/protobuf/descriptor.py", line 652, in __new__
    _message.Message._CheckCalledFromGeneratedFile()
TypeError: Descriptors should not be created directly, but only retrieved from their parent.

pip install protobuf==3.0.0b2 fixes this (pointed out by @clehner at #326). Getting back to protobuf==3.0.0 brings the error again.

Whytehorse commented 7 years ago

Confirmed, 3.0.0b2 resolved this for me. 2.4.1 had some other error. Commands: sudo -H pip uninstall protobuf sudo -H pip install protobuf==3.0.0b2

kharoof commented 7 years ago

I tried Installing via Digital ocean using https://openbazaar.zendesk.com/hc/en-us/articles/207852873-Guide-to-Setting-up-OpenBazaar-Server-on-a-VPS and I got the following error

Traceback (most recent call last):
 File "openbazaard.py", line 11, in <module>
   from api.ws import WSFactory, AuthenticatedWebSocketProtocol, AuthenticatedWebSocketFactory
 File "/home/user/OpenBazaar-Server/api/ws.py", line 17, in <module>
   from dht.node import Node
 File "/home/user/OpenBazaar-Server/dht/node.py", line 8, in <module>
   from protos import objects
 File "/home/user/OpenBazaar-Server/protos/objects.py", line 17, in <module>
   import countries as countries__pb2
 File "/home/user/OpenBazaar-Server/protos/countries.py", line 36, in <module>
   type=None),
 File "/usr/local/lib/python2.7/dist-packages/google/protobuf/descriptor.py", line 652, in __new__
   _message.Message._CheckCalledFromGeneratedFile()
TypeError: Descriptors should not be created directly, but only retrieved from their parent.

running the following two commands fixed the issue

sudo pip install protobuf==3.0.0b2
sudo pip install requests=2.13.0