kragniz / python-etcd3

Python client for the etcd API v3
Apache License 2.0
429 stars 183 forks source link

Installing etcd3 #2242

Open nijinjose123 opened 1 year ago

nijinjose123 commented 1 year ago

Hi, I installed the package from directly using pip install etcd3 and when I import the package, I get the following error:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/pvw24040/ska_python/lib/python3.11/site-packages/etcd3/__init__.py", line 3, in <module>
    import etcd3.etcdrpc as etcdrpc
  File "/Users/pvw24040/ska_python/lib/python3.11/site-packages/etcd3/etcdrpc/__init__.py", line 1, in <module>
    from .rpc_pb2 import *
  File "/Users/pvw24040/ska_python/lib/python3.11/site-packages/etcd3/etcdrpc/rpc_pb2.py", line 16, in <module>
    from etcd3.etcdrpc import kv_pb2 as kv__pb2
  File "/Users/pvw24040/ska_python/lib/python3.11/site-packages/etcd3/etcdrpc/kv_pb2.py", line 33, in <module>
    _descriptor.EnumValueDescriptor(
  File "/Users/pvw24040/ska_python/lib/python3.11/site-packages/google/protobuf/descriptor.py", line 796, in __new__
    _message.Message._CheckCalledFromGeneratedFile()
TypeError: Descriptors cannot not be created directly.
If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0.
If you cannot immediately regenerate your protos, some other possible workarounds are:
 1. Downgrade the protobuf package to 3.20.x or lower.
 2. Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and will be much slower).

Could someone help me with this. I am not sure downgrading the protobuf is the best idea here. I would have hoped it to be straight forward installation

karthikdialpad commented 1 year ago

Did you find a solution for this problem? I too face this problem while importing.

Alexey-NM commented 1 year ago

Did you find a solution for this problem?

You can add the envirement variable:

export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python

But I think it would be better to get more fresh version of the library, you can add in requirements.txt

etcd3 @ git+https://github.com/kragniz/python-etcd3.git@e58a899579ba416449c4e225b61f039457c8072a

I have found some critical bugs in the current release( 0.12.0)