728x90
728x90

Pyinstaller로 패키징할 때 환경 변수 파일(.env) 인식 안되는 문제 해결 방법

들어가며

  • Pyinstaller를 사용하여 실행 파일(@.exe@)로 패키징 할 때, 환경 변수 파일(@.env@) 인식이 안되는 문제를 해결하는 방법을 정리해본다.

 

방법

  • 기본적으로 파이썬(Python)에서 환경 변수 파일(@.env@)의 내용을 불러오려면 @dotenv@ 패키지를 사용해야 한다.
  • @dotenv@ 패키지에 대한 자세한 내용은 아래의 글을 참고한다.
 

[Python] .env 파일 다루는 방법

.env 파일 다루는 방법들어가며파이썬(Python)에서 @.env@ 파일을 다루는 방법을 정리해본다. .env 파일개념키(Key)-값(Value) 쌍으로 환경 변수를 정의하는 간단한 텍스트 파일이 파일을 사용하면

dev-astra.tistory.com

 

환경 설정 파일(@.env@)의 경로 명확히 지정하기

  • 환경 변수 파일을 불러오는 코드에 아래의 코드를 추가한다.
import os
from dotenv import load_dotenv

# 현재 실행 파일의 위치를 기준으로 경로 설정하기
base_dir = getattr(sys, '_MEIPASS', os.path.dirname(os.path.abspath(__file__)))
dotenv_path = os.path.join(base_dir, '.env')

# .env 파일 불러오기
load_dotenv(dotenv_path)

 

@sys._MEIPASS@는 Pyinstaller로 패키징한 후, 임시 폴더에서 실행되는 파일 경로이다.

⇒  이 방식으로 @.env@ 파일이 패키징된 실행 파일(@.exe@)에서 정확한 경로로 환경 변수를 불러올 수 있다.

 

@.env@ 파일을 포함하여 패키징하기

  • @--add-data ".env;."@ 속성을 추가하여, 패키징을 할 때 @.env@ 파일을 포함하도록 한다.
$ pyinstaller --add-data ".env;." main.py

 

 

728x90
728x90