목차
오늘은 pyinstaller를 사용해 여러개의 모듈이 묶인 python code를 deploy하는 방법을 정리하려 한다.
리눅스는 윈도우10과 달리 file_name.spec 라는 파일이 생성되지 않는다. 따라서 하나하나 라이브러리 경로를 입력해줄 필요가 없어서 윈도우에 비해 간편하다.
0. python code가 동작하는 가상환경 활성화
conda activate 가상환경이름
1. pyinstaller 설치
pip install pyinstaller
2. pyinstaller로 실행파일로 변환
pyinstaller --distpath /scratch/dohyeon main.py
--distpath : 실행파일이 저장될 디렉토리 주소
3. 문제해결
에러 1 - Assertionerror: /scratch/dohyeon/main/distutils/core.pyc
위 에러는 setuptools==60.0.0 버전 이상부터 발생하는 에러이다.
아래 명령어로 다운그레이드 시키면 해결된다.
pip install --upgrade setuptools==59.8.0
에러 2 - pyinstaller error : ModuleNotFoundError: No module named 'mmcv._ext'
위 에러는 mmdetection code를 실행할 때 가상환경이 아닌 pyinstaller로 묶어주면 발생하는 에러이다.
위 에러는 --hidden-import 옵션을 추가하면 해결된다.
아래 명령어로 실행파일을 생성한다.
pyinstaller --hidden-import=mmcv._ext --hidden-import torchvision --distpath /scratch/dohyeon main.py
reference: https://bytemeta.vip/repo/open-mmlab/mmsegmentation/issues/854?page=2
4. 실행파일 생성하기
pyinstaller --hidden-import=mmcv._ext --hidden-import torchvision --distpath /scratch/dohyeon main.py
5. 생성된 python file 이름 폴더로 들어가서 실행파일 동작해보기
나의 경우 디렉토리 경로를 /scratch/dohyeon 이라는 곳에 설정해놓았기 때문에
해당 디렉토리에 main 이라는 디렉토리가 생성되었고 그 안에 아래 사진과 같이 많은 파일들이 생성되었다.
이중 main 이라는 파일을 아래 명령어로 실행해보면 문제없이 동작하는 것을 확인할 수 있다.
./main
'기본기 > OS' 카테고리의 다른 글
[ubuntu] 22.04 TensorRT 설치방법 (1) | 2024.11.06 |
---|---|
[window10] 부팅 시 프로그램 자동실행 (0) | 2022.04.15 |
[window10] 작업 스케줄러와 배치파일 이용해 일정시간마다 프로그램 자동 실행시키기 (0) | 2022.04.03 |
[ubuntu] apt install로 설치한 패키지 anaconda 가상환경에 집어넣기 (0) | 2022.03.17 |
[windows10] 배치파일을 이용하여 파이썬 파일 실행하기 (0) | 2022.02.09 |