kragniz / kragniz/python-etcd3
Can't use etcd3 package?
- Langage dominant
- Python
- Étoiles
- 450
- Forks
- 194
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
I have installed etcd3:
```
etcd3==0.12.0
- grpcio [required: >=1.27.1, installed: 1.49.1]
- six [required: >=1.5.2, installed: 1.16.0]
- protobuf [required: >=3.6.1, installed: 4.21.7]
- six [required: >=1.12.0, installed: 1.16.0]
- tenacity [required: >=6.1.0, installed: 8.1.0]
```
trying to import:
`import etcd3`
Getting the following error:
```
TypeError Traceback (most recent call last)
Cell In [7], line 1
----> 1 import etcd3
File ~/.local/share/virtualenvs/actionstore-workflow-fuzzy-slot-filling-BxsXSO6K/lib/python3.8/site-packages/etcd3/__init__.py:3
1 from __future__ import absolute_import
----> 3 import etcd3.etcdrpc as etcdrpc
4 from etcd3.client import Etcd3Client
5 from etcd3.client import Transactions
File ~/.local/share/virtualenvs/actionstore-workflow-fuzzy-slot-filling-BxsXSO6K/lib/python3.8/site-packages/etcd3/etcdrpc/__init__.py:1
----> 1 from .rpc_pb2 import *
2 from .rpc_pb2_grpc import *
File ~/.local/share/virtualenvs/actionstore-workflow-fuzzy-slot-filling-BxsXSO6K/lib/python3.8/site-packages/etcd3/etcdrpc/rpc_pb2.py:16
11 # @@protoc_insertion_point(imports)
13 _sym_db = _symbol_database.Default()
---> 16 from etcd3.etcdrpc import kv_pb2 as kv__pb2
17 from etcd3.etcdrpc import auth_pb2 as auth__pb2
20 DESCRIPTOR = _descriptor.FileDescriptor(
21 name='rpc.proto',
22 package='etcdserverpb',
(...)
26 ,
27 dependencies=[kv__pb2.DESCRIPTOR,auth__pb2.DESCRIPTOR,])
File ~/.local/share/virtualenvs/actionstore-workflow-fuzzy-slot-filling-BxsXSO6K/lib/python3.8/site-packages/etcd3/etcdrpc/kv_pb2.py:33
12 _sym_db = _symbol_database.Default()
17 DESCRIPTOR = _descriptor.FileDescriptor(
18 name='kv.proto',
19 package='mvccpb',
(...)
22 serialized_pb=_b('\n\x08kv.proto\x12\x06mvccpb\"u\n\x08KeyValue\x12\x0b\n\x03key\x18\x01 \x01(\x0c\x12\x17\n\x0f\x63reate_revision\x18\x02 \x01(\x03\x12\x14\n\x0cmod_revision\x18\x03 \x01(\x03\x12\x0f\n\x07version\x18\x04 \x01(\x03\x12\r\n\x05value\x18\x05 \x01(\x0c\x12\r\n\x05lease\x18\x06 \x01(\x03\"\x91\x01\n\x05\x45vent\x12%\n\x04type\x18\x01 \x01(\x0e\x32\x17.mvccpb.Event.EventType\x12\x1c\n\x02kv\x18\x02 \x01(\x0b\x32\x10.mvccpb.KeyValue\x12!\n\x07prev_kv\x18\x03 \x01(\x0b\x32\x10.mvccpb.KeyValue\" \n\tEventType\x12\x07\n\x03PUT\x10\x00\x12\n\n\x06\x44\x45LETE\x10\x01\x42\x18\n\x14\x63om.coreos.jetcd.apiP\x01\x62\x06proto3')
23 )
27 _EVENT_EVENTTYPE = _descriptor.EnumDescriptor(
28 name='EventType',
29 full_name='mvccpb.Event.EventType',
30 filename=None,
31 file=DESCRIPTOR,
32 values=[
---> 33 _descriptor.EnumValueDescriptor(
34 name='PUT', index=0, number=0,
35 serialized_options=None,
36 type=None),
37 _descriptor.EnumValueDescriptor(
38 name='DELETE', index=1, number=1,
39 serialized_options=None,
40 type=None),
41 ],
42 containing_type=None,
43 serialized_options=None,
44 serialized_start=253,
45 serialized_end=285,
46 )
47 _sym_db.RegisterEnumDescriptor(_EVENT_EVENTTYPE)
50 _KEYVALUE = _descriptor.Descriptor(
51 name='KeyValue',
52 full_name='mvccpb.KeyValue',
(...)
112 serialized_end=137,
113 )
File ~/.local/share/virtualenvs/actionstore-workflow-fuzzy-slot-filling-BxsXSO6K/lib/python3.8/site-packages/google/protobuf/descriptor.py:755, in EnumValueDescriptor.__new__(cls, name, index, number, type, options, serialized_options, create_key)
752 def __new__(cls, name, index, number,
753 type=None, # pylint: disable=redefined-builtin
754 options=None, serialized_options=None, create_key=None):
--> 755 _message.Message._CheckCalledFromGeneratedFile()
756 # There is no way we can build a complete EnumValueDescriptor with the
757 # given parameters (the name of the Enum is not known, for example).
758 # Fortunately generated files just pass it to the EnumDescriptor()
759 # constructor, which will ignore it, so returning None is good enough.
760 return None
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).
More information: https://developers.google.com/protocol-buffers/docs/news/2022-05-06#python-updates
```
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Reproduisez l’échec de l’importation avec les versions de paquets Python indiquées, puis inspectez etcd3/etcdrpc/rpc_pb2.py et kv_pb2.py, en particulier leur code de descripteurs généré. Comparez les fichiers générés avec la version installée de protobuf et vérifiez les métadonnées de dépendances du paquet. Le travail est considéré comme terminé lorsque l’importation de etcd3 réussit avec une combinaison de dépendances prise en charge.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python
- Domaine
- databases, distributed-systems
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100