已经把protobuf的版本降低到3.20.1了,但是运行后还是报错,求解答
Traceback (most recent call last):
File "F:\PaddleOCR\开始脚本.py", line 3, in
from paddleocr import PPStructure,draw_structure_result,save_structure_res
File "F:\PaddleOCR\paddleocr.py", line 47, in
from ppocr.utils.logging import get_logger
File "F:\PaddleOCR\ppocr\utils\logging.py", line 23, in
import paddle.distributed as dist
File "D:\Anaconda\envs\yylocr\lib\site-packages\paddle\__init__.py", line 31, in
from .framework import monkey_patch_variable
File "D:\Anaconda\envs\yylocr\lib\site-packages\paddle\framework\__init__.py", line 17, in
from . import random # noqa: F401
File "D:\Anaconda\envs\yylocr\lib\site-packages\paddle\framework\random.py", line 17, in
from paddle import fluid
File "D:\Anaconda\envs\yylocr\lib\site-packages\paddle\fluid\__init__.py", line 36, in
from . import framework
File "D:\Anaconda\envs\yylocr\lib\site-packages\paddle\fluid\framework.py", line 33, in
from .proto import framework_pb2, data_feed_pb2
File "D:\Anaconda\envs\yylocr\lib\site-packages\paddle\fluid\proto\framework_pb2.py", line 33, in
_descriptor.EnumValueDescriptor(
File "D:\Anaconda\envs\yylocr\lib\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).