본문 바로가기

Python Study/파이썬 공부하기

어떤 환경에서든 동작하도록 Python에서 exe 실행 파일 만들기

728x90

1. Python 실행파일(.exe) 이 왜 필요할까?

스크립트 파일을 .exe 파일로 만들기에 좋은 경우는 하기 2가지가 있습니다.

 

1. 내 code가 제 3자에게 공개 되지 않기 위해

- 내 자산이 될 수 있는 코드의 경우 .py 형태로 제 3자에게 제공이 되면 소스코드도 함께 공개가 되기 때문에 실행파일의 형태로 변환하여 제공하면 소스코드 유출을 막을 수 있음

 

2. 스크립트를 실행하기 위한 Package들을 설치할 필요가 없음

- .py 형태로 제 3자에게 제공될 경우 해당 스크립트를 실행하기 위한 package들도 사용자 PC에 설치가 되어야 하는데 실행파일로 전달할 경우 환경설정 필요 없이 바로 사용할 수 있음

 

 

2. pyinstaller 모듈을 설치하여 exe 파일 만들기

>pip install pyinstaller

 

스크립트 작성 후 해당 스크립트가 있는 디렉토리로 이동하여 pyinstaller 실행

>pyinstaller --onefile ./helloworld.py

 

 

하기와 같이 'completed successfully' 문구가 뜨면 성공

51230 INFO: Building PYZ (ZlibArchive) C:\build\helloworld\PYZ-00.pyz completed successfully

.

.

.

62717 INFO: Appending archive to EXE C:\dist\helloworld.exe

생성된 실행 파일은 위와 같이 output path정보를 알려줍니다.

 

 

dist 폴더로 가보면 .exe파일이 생성되어 있는걸 확인하실수 있습니다.

 

 

3. 원하는 이미지 아이콘으로 삽입하여 실행파일 만들기

삽입하고자 하는 이미지준비

하기 사이트에 가서 무료로 이미지를 ico파일로 convert 할수있습니다.

- https://icoconvert.com/

 

 

icon 삽입 명령어 추가

>pyinstaller --icon=unnamed_Lsk_icon.ico --onefile ./helloworld.py

 

아이콘 삽입 성공!

 

4. OSError: [Errno 22] Invalid argument 에러가 발생할 경우

파일 이름에 전혀 문제가 없는데 OSError: [Errno 22] Invalid argument 에러와 함께

.exe 파일 생성이 실패하실 경우가 있는데요

에러 마지막 부분을 보시면 스크립트를 수행하는 폴더에 access 할수없다는 에러 메시지를 보실수 있을겁니다.

이건 windows 보안 프로그램 때문인데요 아래와 같이 스크립트 폴더를 보안 대상에서 예외처리 해주시면 정상적으로 생성이 가능합니다.

 

=========================

시작 > 설정 > 업데이트 및 보안 > windows 보안 > 바이러스 및 위협 방지 > 앱 열기 클릭하면 Avast Free Antivirus or 다른 바이러스 프로그램 켜짐  > 메뉴 > 설정 > 일반 > 예외 > 예외 추가에서 스크립트 폴더 선택

728x90
반응형