偷懒被反打,以为下个python版本的TensorRT就完事,不够用的,老老实实下载就完事了
当你使用 pip
安装 TensorRT 时,你实际上是在安装一个 Python 包,这个包包含了 Python 绑定和运行时需要的一些共享库。然而,pip
安装的 TensorRT Python 包并不一定包含所有的原生 .so
文件,特别是像 libnvinfer.so.7
这样的低层库文件。
TensorRT 的 pip
包设计为包含运行 Python 程序所需的库接口,这些库接口允许 Python 代码调用 TensorRT 功能。然而,为了保持 Python 包的小巧和兼容性,完整的 TensorRT C++ 库(包括 libnvinfer.so.7
)可能不会被打包进 Python 轮子文件(.whl
文件)中。
libnvinfer.so.7
是一个 C++ 层面的库,它是 TensorRT 的一部分,用于实现推理引擎的核心功能。当使用 pip
安装时,TensorRT 的 Python 包通常会依赖于系统上已安装的 TensorRT C++ 库。这意味着你可能需要在系统级安装 TensorRT,以便提供这些底层的 .so
文件。
如果你通过 pip
安装了 TensorRT,并且遇到类似 “找不到 libnvinfer.so.7
” 的错误,这通常意味着你的系统上缺少相应的 C++ 库。解决这个问题的方法可能包括:
-
系统级安装:在你的系统上安装完整的 TensorRT 包,这通常是一个
.deb
,.rpm
或.tar
文件,它会包含所有必要的.so
文件。 -
环境变量:确保你的
LD_LIBRARY_PATH
环境变量包含了 TensorRT 和 CUDA 库的路径。即使你已经系统级安装了 TensorRT,如果LD_LIBRARY_PATH
没有正确设置,动态链接器可能仍然找不到这些库。 -
从源编译:如果需要,你可以从源代码编译 TensorRT,这将确保所有库文件都被构建并安装在你的系统上。
-
使用 Conda:考虑使用 Anaconda 或 Miniconda 的
conda
包管理器来安装 TensorRT。conda
通常会提供一个更加自包含的环境,其中包含了所有必要的依赖库,包括.so
文件。 -
自定义安装:如果你只需要某些特定版本的
.so
文件,你可以从 NVIDIA 的官方网站下载相应的 TensorRT 版本,然后手动安装或提取你需要的.so
文件到适当的目录。
总之,pip
安装的 TensorRT Python 包可能不包含 libnvinfer.so.7
这样的原生库文件,因此你可能需要额外的步骤来确保这些库文件在你的系统上可用。