TensorRT python包与python 3.6不兼容

Posted

技术标签:

【中文标题】TensorRT python包与python 3.6不兼容【英文标题】:TensorRT python package incompatibility with python 3.6 【发布时间】:2018-05-31 09:56:21 【问题描述】:

如果您安装了CUDA using the run file,则从其 tar 文件安装 TensorRT 4 是唯一可用的选项。但是,tar 文件仅包含适用于 python 2.7 和 3.5 的 python TensorRT 轮文件。没有提供 python 3.6 轮文件。

我无法在我的 python 3.6 系统上强制安装 python 3.5 wheel 文件:

$ pip install tensorrt-4.0.0.3-cp35-cp35m-linux_x86_64.whl 
tensorrt-4.0.0.3-cp35-cp35m-linux_x86_64.whl is not a supported wheel on this platform.

另外,我不能创建一个新的 python 3.5 virtualenv 来使用 TensorRT。

有没有办法通过手动复制文件在我的 python 3.6 平台上手动安装这个包?

【问题讨论】:

【参考方案1】:

是的,您可以将此文件重命名为 tensorrt-4.0.0.3-cp36-cp36m-linux_x86_64.whl 并重试。

有效。

【讨论】:

这里注意:由于上述重命名问题,可能会出现导入错误,需要找到错误对应的对应文件,也对应重命名为36。例如:import tensorrt as trt ModuleNotFoundError: No module named 'tensorrt.infer._nv_infer_bindings' 对应 ****/tensorrt/infer/_nv_infer_bindings.cpython-35m-x86_64-linux-gnu.so 重命名为 _nv_infer_bindings.cpython-36m-x86_64-linux- gnu.so 在**/tensorrt上搜索35,全部改为36 ImportError: libpython3.5m.so.1.0: cannot open shared object file: No such file or directory, and I can't find '3.5' in the tensorrt package 我原来使用的版本是tensorrt-4.0.0.3,直接改没有出现这个问题。现在换成 tensorrt-4.0.1.6 确实有这个问题。这种改变不是治愈方法。【参考方案2】:

请使用 python 版本 3.5.5。我对python 3.6版有同样的问题。最新版本的 tensorflow 适用于 python 3.5。如果您使用 anaconda,请使用 conda shell 激活较早的 python 版本。您可以将环境设置为使用早期版本的 python。

【讨论】:

以上是关于TensorRT python包与python 3.6不兼容的主要内容,如果未能解决你的问题,请参考以下文章

Python模块包与面向对象综合案例

Python 装包与拆包

TensorRT8 meets Python TensorRT快速入门介绍

[小白自学python]如何理解与应用装包与解包?

TensorFlow:使用 Python 确定 tensorRT 功耗

Python学习-基础篇4 模块与包与常用模块