개인적으로 파이썬으로 특정 작업을 자동화하는 스크립트를 작성했는데, 개발자가 아닌 사람에게 .py 파일을 그대로 공유하려니 파이썬 사용법을 알려줘야하는 문제가 있었다. 그런데 다른 분이 pyinstaller를 사용하면 실행파일을 쉽게 만들 수 있다고 해서 바로 만들어보았었다.
1. pyinstaller 사용법
pyinstaller의 사용법 자체는 매우 간단하다. pip로 pyinstaller를 다운받고,
pip install pyinstaller
아래와 같이 실행파일을 생성하고자 하는 파이썬 파일을 명시해주면 된다. 참고로 -F 옵션은 실행 파일을 한 개로 패키지화 해서 생성해주는 옵션.
pyinstaller -F filename.py
위 명령어를 실행하고 나면 dist 디렉토리에 실행파일이 생성된다. 참고로 MacOS에서 pyinstaller를 실행할 경우, exec(unix excutable file)이 , Windows에서 pyinstaller를 실행할 경우 exe 파일이 생성된다.
2. 에러 발생 & 해결 방법
실행 파일을 생성하는데에는 문제가 없었지만, 실제로 파일을 실행할 때 콘솔에서 아래와 같은 에러가 발생했다. 스크립트 중 csv 파일 경로를 명시(csv_file_path = 'reviews.csv'
)해서 파일을 열어주는 부분이 있었는데, 해당 코드를 실행할 때 작업 파일 경로를 못찾았던 것.
FileNotFoundError: [Errno 2] No such file or directory
아래와 같이 실행파일을 사용할 경우와 파이썬 파일을 실행할 경우에 경로를 가져오는 방법을 다르게 설정하는 코드를 추가해준 뒤, 실행파일을 다시 생성해주면 문제가 해결된다.
import sys
if getattr(sys, 'frozen', False):
# 실행파일로 실행한 경우,해당 파일을 보관한 디렉토리의 full path를 취득
program_directory = os.path.dirname(os.path.abspath(sys.executable))
else:
# 파이썬 파일로 실행한 경우,해당 파일을 보관한 디렉토리의 full path를 취득
program_directory = os.path.dirname(os.path.abspath(__file__))
os.chdir(program_directory)
'Programming' 카테고리의 다른 글
[Python]가상환경 활성화 단축키 생성하기(MacOS) (0) | 2024.01.06 |
---|---|
[Python]가상환경(venv) 생성, 활성화, 비활성화 및 삭제 방법 (0) | 2023.10.14 |
[Java]연산자(3) (1) | 2023.05.26 |
[Java]연산자(2) (0) | 2023.05.25 |
[Java]연산자(1) (0) | 2023.05.25 |