(转)paddlepaddle安装问题protobuf package to 3.20.x or lower.

报错如下:

>>> import paddle
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/var/pyenv/versions/3.10.2/lib/python3.10/site-packages/paddle/__init__.py", line 25, in <module>
    from .framework import monkey_patch_variable
  File "/usr/local/var/pyenv/versions/3.10.2/lib/python3.10/site-packages/paddle/framework/__init__.py", line 17, in <module>
    from . import random  # noqa: F401
  File "/usr/local/var/pyenv/versions/3.10.2/lib/python3.10/site-packages/paddle/framework/random.py", line 16, in <module>
    import paddle.fluid as fluid
  File "/usr/local/var/pyenv/versions/3.10.2/lib/python3.10/site-packages/paddle/fluid/__init__.py", line 36, in <module>
    from . import framework
  File "/usr/local/var/pyenv/versions/3.10.2/lib/python3.10/site-packages/paddle/fluid/framework.py", line 35, in <module>
    from .proto import framework_pb2
  File "/usr/local/var/pyenv/versions/3.10.2/lib/python3.10/site-packages/paddle/fluid/proto/framework_pb2.py", line 33, in <module>
    _descriptor.EnumValueDescriptor(
  File "/usr/local/var/pyenv/versions/3.10.2/lib/python3.10/site-packages/google/protobuf/descriptor.py", line 755, 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).

More information: https://developers.google.com/protocol-buffers/docs/news/2022-05-06#python-updates

# 先说解决方法

pip uninstall protobuf

 

pip install protobuf==3.19.0 

 

 

转自:https://blog.csdn.net/songchaofly/article/details/125092409

posted @ 2022-06-16 23:02  Cong0ks  阅读(1486)  评论(0)    收藏  举报