Devido a ModuleNotFoundError: Nenhum módulo chamado 'tensorrt', a instalação do TensorRT-python encontrou um erro

ModuleNotFoundError: Nenhum módulo chamado 'tensorrt' https://forums.developer.nvidia.com/t/modulenotfounderror-no-module-named-tensorrt/161565

Cem posturas de  relatórios de erros do TensorRT |

 pip install --user --upgrade nvidia-tensorrt

Também atualizou ferramentas de configuração no meio

(yolov8) PS D:\todesk\yolov8model> pip install setuptools==60.0.5
Procurando em índices: https://pypi.org/simple, https://pypi.ngc.nvidia.com
Coletando setuptools==60.0. 5
  Baixando setuptools-60.0.5-py3-none-any.whl (953 kB)
     ------------------------------- --------- 953.1/953.1 kB 2.9 MB/s eta 0:00:00
Instalando pacotes coletados: setuptools
  Tentando desinstalar: setuptools
    Instalação existente encontrada: setuptools 58.0.4
    Desinstalando setuptools-58.0.4:
      Setuptools desinstalados com sucesso -58.0.4
setuptools instalado com sucesso-60.0.5

Mas é inútil e um erro ainda será relatado, conforme mostrado abaixo.

(yolov8) PS D:\todesk\yolov8model> pip install --user --upgrade nvidia-tensorrt
Procurando em índices: https://pypi.org/simple, https://pypi.ngc.nvidia.com
Coletando nvidia- tensorrt
  Baixando nvidia-tensorrt-0.0.1.dev5.tar.gz (7,9 kB)
  Preparando metadados (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py egg_info não foi executado com sucesso.
  │ código de saída: 1
  ╰─> [17 linhas de saída]
      Traceback (última chamada mais recente):
        Arquivo "<string>", linha 2, em <module>
        Arquivo "<pip-setuptools-caller>", linha 34, in <module>
        File "C:\Users\PC\AppData\Local\Temp\pip-install-dlqqyz74\nvidia-tensorrt_1280f25f910844178b7e7d8b8c5baaa2\setup.py", linha 150, em <module> raise RuntimeError(open("
          ERROR.txt ", "r").read())
      RuntimeError:
      ##################################### ################################################### ####
      O pacote que você está tentando instalar é apenas um projeto de espaço reservado no PyPI.
      Este pacote está hospedado no NVIDIA Python Package Index.

      Este pacote pode ser instalado como:
      ```
      $ pip install nvidia-pyindex
      $ pip install nvidia-tensorrt
      ```
      ########################## ################################################### ################

      [fim da saída]

  nota: Este erro se origina de um subprocesso e provavelmente não é um problema com o pip.
erro: falha na geração de metadados

× Erro encontrado ao gerar metadados do pacote.
╰─> Veja acima a saída.

nota: Este é um problema com o pacote mencionado acima, não com o pip.
Dica: Veja acima para detalhes.

Primeiro baixamos a versão tensorrt8.xx, a versão cuda11.x para Windows NVIDIA TensorRT 8.x Download | NVIDIA Developer https://developer.nvidia.cn/nvidia-tensorrt-8x-download

 Instale esta versão, descompacte a pasta zip e adicione a pasta lib ao caminho da variável de ambiente

Vá para a pasta python deste TensoRT-8.4.2.4

 

Então nós cd no diretório

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

 Conforme mostrado na figura abaixo, a instalação local pode ser realizada com sucesso dessa maneira, mas ainda não pode ser executada

 A razão pela qual instalei isso é porque preciso converter o modelo onnx em um modelo onnx simples e, em seguida, converter o modelo onnx simplificado em um modelo trt, que precisa ser executado

python -m yolov8n.onnx yolov8_sim.onnx

Este comando, mas executa diretamente o erro "ModuleNotFoundError: No module named 'tensorrt'"

Solução final: você precisa baixar uma versão mais antiga do TensorRT, que ainda está instalada localmente, e as etapas de instalação são as mesmas acima

A versão baixada é TensorRT-8.2.1.8 e a versão python correspondente é 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

Por fim, anexe um código python de onnx ao formato trt

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推理时最大支持的batchsize

with 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_size

    config = 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())

Acho que você gosta

Origin blog.csdn.net/blink182007/article/details/130832491
Recomendado
Clasificación