pyqt로 UI만들고 exe파일로 변환하여 사용을 해야하는데, exe파일로 변환하는것이 생각보다 쉽지 않았다. 그래서 나중에 또 exe파일로 변환해야 하는 상황을 대비하기 위해 나의 경험을 글로 남긴다.
pyinstaller 설치
pip install pyinstaller
pyinstaller 옵션
주로 사용하는 옵션은 -F, -D, -w, -n, -i, -h 정도이다.
-F(--onefile) : 모든 소스 파일을 하나의 실행 파일로 묶어 실행파일 하나만 생성한다.
-D(--onedir) : 실행파일과 실행에 필요한 파일을 하나의 디렉토리로 만들어 생성한다.
-w(--windowed) : exe파일을 실행 했을때 콘솔창을 안보이게 한다.
-n NAME(--name=NAME) : 실행파일의 이름을 설정한다.
-i ICON(--icon=ICON) : 실팽파일의 아이콘을 설정한다.
-h(--help) : pyinstalled 도움말 표시
exe파일 만들기
pyinstaller -w -F your_file.py
your_file.py를 콘솔창을 제외하고 하나의 실행파일로 만든다.
빌드 성공시 build, dist, .spec가 생성된다. build디렉토리는 우리가 크게 신경쓰지 않아도 되는 디렉토리이며, dist는 빌드후의 결과물이 저장되고, spec는 빌드 옵션을 조정하는 파일이다.
- build : 소스코드를 컴파일하고 실행 파일을 빌드할때 사용하는 임시 디렉토리.
- dist : 실행파일과 관련 파일들이 저장되는 디렉토리.
- .spec : 최초 빌드시 자동으로 생성되며, 사용자가 자세한 옵션을 설정할 수 있는 파일.
.spec 설정
간혹 빌드를하는 과정이나 실행파일을 실행 했을때, 다양한 이유로 에러가 발생하게 된다. 이때 .spec파일을 사용하여 이러한 문제를 해결할 수 있다.
- Analysis : 스크립트와 모든 종속성을 추적하고 분석하여 실행 파일에 포함해야 할 파일 및 모듈을 결정.
- pathex : 모듈이나 패키지를 찾는 위치를 나타내며, 이 위치에 포함된 모든 파일과 폴더를 실행 파일에 포함시킴.
- datas : 실행 파일과 함께 포함되는 데이터 파일의 경로를 지정.
- hiddenimports : 실행 파일에 포함되어야 하는 임포트 되지 않은 모듈의 이름을 지정.
- hookspath : 사용자 정의 훅 파일이 위치한 디렉토리의 경로를 지정.
- excludes : 실행파일에서 제외 되어야하는 모듈의 이름을 지정.
- EXE : 실행파일을 생성하는데 필요한 정보를 포함. 명령어의 일부 옵션 설정가능.
- name : 생성되는 실행 파일의 이름을 지정.
- icon : 실행파일의 아이콘파일 경로를 지정.
- console : 실행파일 실행시 콘솔창 활성화 여부 설정.
spec 작성 예시
- hiddenimports 입력 예시
- from A import a : ['A.a']
- import b : ['A.a', 'b']
- pathex 입력 예시
- ['C:\\test\\module']
- datas 입력 예시
- [('C:\\test\\image.ui', 'image.ui'),]
이후 spec로 빌드
pyinstaller your_file.spec
'[IT]' 카테고리의 다른 글
[네이버] API 사용방법 (0) | 2024.04.08 |
---|---|
[구글 클라우드 플랫폼] 구독하기 (0) | 2024.03.05 |
[ChatGPT] API 사용방법 - 등록 (0) | 2024.01.11 |
[Selenium] 기존 쿠키로 크롬 사용하기 (0) | 2023.09.21 |
[Selenium]cannot parse internal JSON template (0) | 2023.09.04 |