项目场景:
paddle带TensorRT编译的预测库运行报错
问题描述
Traceback (most recent call last):
File “E:/my_project/PotatoDetect-V2/sorter_algorithm.py”, line 10, in
import paddle
File “C:\ProgramData\Anaconda3\envs\paddle-trt\lib\site-packages\paddle_init_.py”, line 25, in
from .framework import monkey_patch_variable
File “C:\ProgramData\Anaconda3\envs\paddle-trt\lib\site-packages\paddle\framework_init_.py”, line 17, in
from . import random # noqa: F401
File “C:\ProgramData\Anaconda3\envs\paddle-trt\lib\site-packages\paddle\framework\random.py”, line 16, in
import paddle.fluid as fluid
File “C:\ProgramData\Anaconda3\envs\paddle-trt\lib\site-packages\paddle\fluid_init_.py”, line 36, in
from . import framework
File “C:\ProgramData\Anaconda3\envs\paddle-trt\lib\site-packages\paddle\fluid\framework.py”, line 35, in
from .proto import framework_pb2
File “C:\ProgramData\Anaconda3\envs\paddle-trt\lib\site-packages\paddle\fluid\proto\framework_pb2.py”, line 33, in
_descriptor.EnumValueDescriptor(
File “C:\ProgramData\Anaconda3\envs\paddle-trt\lib\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:
- Downgrade the protobuf package to 3.20.x or lower.
- 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
原因分析:
提示:这里填写问题的分析:
未知
解决方案:
提示:这里填写该问题的具体解决方案:
在当前conda环境下
pip uninstall protobuf
然后
pip install protobuf==3.19.0