본문 바로가기

카테고리 없음

Ubuntu 22.04, python3에서 tensorrt libnvinfer 못 찾는 오류

일단 나는 torch2trt를 설치를 해야했고, 뭐 이런거랑 상관없이 일반 python3에서는 tensorrt가 잘 돌아가는데, sudo python3에서만 동작하지 않았다.

 

bashrc에 LD_LIBRARY_PATH 도 링크를 모두 시켜주었는데도 인식을 못했다.

sudo의 bashrc에서도 인식을 못했다.

 

c++은 또 문제가 생길 수 있겠는데,
python3에서 일단 해결방책을 말해준다.

python3 에서  tensorrt 를 import 하게 되면, 
from .tensorrt import *
에서 에러가 나기 때문에
/usr/local/lib/python3.10/dist-packages/tensorrt/__init__.py 를 들어가보자
그럼 .so.* 를 찾으라는 내용이 나오는데, CURDIR이라는 것을 join 해서 찾고 있다.

 

CURDIR을 출력해보니 /usr/local/lib/python3.10/dist-packages/tensorrt/에서 찾고 있다.

그래서 방법은 2가지인데

(1) 없는 파일들을 해당 경로에 넣어주거나

 

(2) libnvinfer가 있는 경로를 넣어주면 된다.

 

나는 TensorRT-8.x.x/lib 경로를 CUDA_DIR에 넣어주었다.

 

sudo vim /usr/local/lib/python3.10/dist-packages/tensorrt/__init__.py

CURDIR= "TensorRT 절대 경로/lib"  --> 내 경우에는 /home/이름/TensorRT-8.5.1.7/lib 로 넣어주었다.

:wq

 

이후에 실행하면 된다.