由于ModuleNotFoundError: No module named ‘tensorrt’安装TensorRT-python发现报错

news/2025/3/14 16:44:04/

ModuleNotFoundError: No module named ‘tensorrt’https://forums.developer.nvidia.com/t/modulenotfounderror-no-module-named-tensorrt/161565

TensorRT报错的一百种姿势 | 【TensorRT 报错统计】-云社区-华为云 (huaweicloud.com)https://bbs.huaweicloud.com/blogs/334486 于是使用

 pip install --user --upgrade nvidia-tensorrt

中间还升级了setuptools

(yolov8) PS D:\todesk\yolov8model> pip install setuptools==60.0.5
Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com
Collecting setuptools==60.0.5
  Downloading setuptools-60.0.5-py3-none-any.whl (953 kB)
     ---------------------------------------- 953.1/953.1 kB 2.9 MB/s eta 0:00:00
Installing collected packages: setuptools
  Attempting uninstall: setuptools
    Found existing installation: setuptools 58.0.4
    Uninstalling setuptools-58.0.4:
      Successfully uninstalled setuptools-58.0.4
Successfully installed setuptools-60.0.5

但没有用,仍然会报错,具体如下所示。

(yolov8) PS D:\todesk\yolov8model> pip install --user --upgrade nvidia-tensorrt
Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com
Collecting nvidia-tensorrt
  Downloading nvidia-tensorrt-0.0.1.dev5.tar.gz (7.9 kB)
  Preparing metadata (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> [17 lines of output]
      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "C:\Users\PC\AppData\Local\Temp\pip-install-dlqqyz74\nvidia-tensorrt_1280f25f910844178b7e7d8b8c5baaa2\setup.py", line 150, in <module>
          raise RuntimeError(open("ERROR.txt", "r").read())
      RuntimeError:
      ###########################################################################################
      The package you are trying to install is only a placeholder project on PyPI.org repository.
      This package is hosted on NVIDIA Python Package Index.

      This package can be installed as:
      ```
      $ pip install nvidia-pyindex
      $ pip install nvidia-tensorrt
      ```
      ###########################################################################################

      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.

我们首先下载tensorrt8.xx版本,适用于Windows的cuda11.x的版本NVIDIA TensorRT 8.x Download | NVIDIA 开发者https://developer.nvidia.cn/nvidia-tensorrt-8x-download

 安装这个版本,解压该zip文件夹,将其中的lib文件夹添加到环境变量path当中

去到这个TensoRT-8.4.2.4的python文件夹下

 

然后我们cd进入该目录

cd D:\1\TensorRT_YOLO\TensorRT-8.4.2.4\python
 pip install tensorrt-8.4.2.4-cp39-none-win_amd64.whl

 如下图所示,这样就能成功实现本地安装了,但是依旧不能实际运行

 我安装这个的起因是因为我需要把onnx模型转为简单的onnx模型,然后再把简化的onnx模型转化为trt模型, 这个当中要运行

python -m yolov8n.onnx yolov8_sim.onnx

这句命令,但是直接运行报错这个“ModuleNotFoundError: No module named ‘tensorrt’”

最终解决方案:需要下载更旧版本的TensorRT才可以,依旧为本地安装,安装步骤同上

下载的版本为TensorRT-8.2.1.8,对应的python版本为3.9

(yolov8) PS D:\todesk\yolov8model> cd D:\1\TensorRT_YOLO\TensorRT-8.2.1.8\python
(yolov8) PS D:\1\TensorRT_YOLO\TensorRT-8.2.1.8\python> pip install tensorrt-8.2.1.8-cp39-none-win_amd64.whl

最后附上一份onnx转trt格式的python代码

import tensorrt as trt
import common'''
通过加载onnx文件,构建engine
'''
onnx_file_path = "model.onnx"G_LOGGER = trt.Logger(trt.Logger.WARNING)# 1、动态输入第一点必须要写的
explicit_batch = 1 << (int)(trt.NetworkDefinitionCreationFlag.EXPLICIT_BATCH)batch_size = 1  # trt推理时最大支持的batchsizewith trt.Builder(G_LOGGER) as builder, builder.create_network(explicit_batch) as network, \trt.OnnxParser(network, G_LOGGER) as parser:builder.max_batch_size = batch_sizeconfig = builder.create_builder_config()config.max_workspace_size = common.GiB(1)  # common文件可以自己去tensorrt官方例程下面找config.set_flag(trt.BuilderFlag.TF32)print('Loading ONNX file from path {}...'.format(onnx_file_path))with open(onnx_file_path, 'rb') as model:print('Beginning ONNX file parsing')parser.parse(model.read())print('Completed parsing of ONNX file')print('Building an engine from file {}; this may take a while...'.format(onnx_file_path))# 动态输入问题解决方案profile = builder.create_optimization_profile()profile.set_shape("input_1", (1, 512, 512, 3), (1, 512, 512, 3), (1, 512, 512, 3))config.add_optimization_profile(profile)engine = builder.build_engine(network, config)print("Completed creating Engine")# 保存engine文件engine_file_path = 'model_fp32.trt'with open(engine_file_path, "wb") as f:f.write(engine.serialize())


http://www.ppmy.cn/news/478580.html

相关文章

超微服务器安装操作系统,超微服务器bios设置

超微服务器bios设置 内容精选 换一换 应用组件是组成应用的某个业务特性实现,以代码或者软件包为载体,可独立部署运行。在ServiceStage上创建应用后,可以在应用中添加组件,目前支持的组件类型有微服务、Web、通用。同一个应用下,最多可支持创建1000个应用组件。您可以通过…

视觉算法的工业部署及落地方面的技术知识,怎么学?

点击上方“3D视觉工坊”&#xff0c;选择“星标” 干货第一时间送达 本文整理自知乎问答&#xff0c;仅用于学术分享&#xff0c;著作权归作者所有。如有侵权&#xff0c;请联系后台作删文处理。 方法一 作者&#xff5c;BBuf https://www.zhihu.com/question/428800593/answer…

Jetson Nano(4)—框架学习(4.1)

1、主流深度学习框架扫盲 万事具备&#xff0c;硬件和系统环境基本已经具备&#xff0c;目前的深度学习框架有下面的的&#xff0c;这里特别提一下国产的深度学习框架&#xff1a;华为 MindSpore、旷视 MegEngine、清华 Jittor&#xff08;毕竟我是爱国的&#xff09;&#xf…

要闻君说:华为“发飙”了;快手抛出了1000+社招岗位;迅雷2018年度财报:云连续三年上涨;定论!小米成立AIoT战略委员会...

关注并标星星CSDN云计算 每周三次&#xff0c;打卡即read 更快、更全了解泛云圈精彩news go go go 大家好&#xff01;偶是要闻君。紧锣密鼓的工作转眼到了“周五时间”&#xff0c;最近圈里的大事儿还挺多&#xff0c;看看&#xff01; 文/要闻君 华为决定起诉美国政府。 在近…

TRT8系列—— pytorch 模型转 onnx

代码 Torch -> onnx 动态batch、单输入、多&#xff08;两&#xff09;输出 的代码如下&#xff1a; import torchdef export():# load modelmodel CartoonPornModel()model_weights /export/xxxx.tarmodel_state_dict torch.load(model_weights, map_locationcpu)mode…

JavaScript 的性能分析与提升

JavaScript 的性能分析与提升 对于 JavaScript/前端来说&#xff0c;性能的提升主要有两大方面&#xff1a; 页面初始化的优化 这一方面主要涉及到非代码结构上&#xff0c;但是能够提升用户体验感的优化&#xff0c;如&#xff0c;提升用户看到页面的速度、减少用户等待与页面…

Triton教程 --- 动态批处理

Triton教程 — 动态批处理 Triton 提供了动态批处理功能&#xff0c;将多个请求组合在一起执行同一模型以提供更大的吞吐量。 默认情况下&#xff0c;只有当每个输入在请求中具有相同的形状时&#xff0c;请求才能被动态批处理。 为了在输入形状经常变化的情况下利用动态批处理…

湖大CG满分教程:作业训练一编程题5. 合法的括号串

【问题描述】 一个合法的括号串&#xff0c;是指只包含括号的串&#xff0c;如果满足如下条件&#xff1a; &#xff08;1&#xff09;<> () [] {} 这四对括号是合法的&#xff1b; &#xff08;2&#xff09;如果r是合法括号串&#xff0c;则<r> (r) [r] {r}也…