[Python]pyinstaller FileNotFoundError: [Errno 2] No such file or directory 에러 해결

2023. 9. 12. 08:56·Programming
반응형

개인적으로 파이썬으로 특정 작업을 자동화하는 스크립트를 작성했는데, 개발자가 아닌 사람에게 .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
'Programming' 카테고리의 다른 글
  • [Python]가상환경 활성화 단축키 생성하기(MacOS)
  • [Python]가상환경(venv) 생성, 활성화, 비활성화 및 삭제 방법
  • [Java]연산자(3)
  • [Java]연산자(2)
Canary_카나리아
Canary_카나리아
어쩌다 데브옵스 엔지니어가 된 문과생의 기록용 블로그
    반응형
  • Canary_카나리아
    release: canary
    Canary_카나리아
  • 전체
    오늘
    어제
    • 분류 전체보기 (120)
      • DevOps (67)
      • Programming (28)
      • Certifications (3)
      • ETC (20)
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    NCPprofessional자격증
    java개념
    프로메테우스예제
    그라파나예제
    네이버클라우드자격증
    Prometheus
    자바개념
    개발자
    네이버클라우드서비스
    ncp서비스
    데브옵스엔지니어
    argocd
    클라우드자격증
    클라우드엔지니어자격증
    한빛출판네트워크
    spring
    그라파나
    kops사용법
    백엔드
    NCPassociate자격증
    백엔드스쿨
    백엔드개발
    프로메테우스
    백엔드공부
    Grafana
    terraform
    제로베이스
    Java
    kops란
    NCP자격증
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
Canary_카나리아
[Python]pyinstaller FileNotFoundError: [Errno 2] No such file or directory 에러 해결
상단으로

티스토리툴바