728x90
728x90
Pyinstaller로 패키징할 때 환경 변수 파일(.env) 인식 안되는 문제 해결 방법
들어가며
- Pyinstaller를 사용하여 실행 파일(@.exe@)로 패키징 할 때, 환경 변수 파일(@.env@) 인식이 안되는 문제를 해결하는 방법을 정리해본다.
방법
- 기본적으로 파이썬(Python)에서 환경 변수 파일(@.env@)의 내용을 불러오려면 @dotenv@ 패키지를 사용해야 한다.
- @dotenv@ 패키지에 대한 자세한 내용은 아래의 글을 참고한다.
환경 설정 파일(@.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
'Programming > Python' 카테고리의 다른 글
[Python] print 문 출력 문자에 색깔 넣는 방법 (ANSI Escape Code) (1) | 2024.11.29 |
---|---|
[Python] loc, iloc 차이점 비교 (Pandas) (0) | 2024.11.22 |
[Python] 환경 변수 파일(.env) 다루는 방법 (0) | 2024.09.27 |
[Python] try-except 문 사용할 때 에러 발생 시, 전체 에러 정보 표시 방법 (2) | 2024.09.07 |
[Python] 데이터 전처리 할 때 결측값 제거 방법 (Pandas) (1) | 2024.06.21 |
[Python] or 연산자와 | 연산자의 차이 (0) | 2024.05.29 |
[Python] self (0) | 2023.11.29 |
[Python] ORM(Object Relational Mapping) 라이브러리 사용해보기 (SQLAlchemy) (0) | 2023.11.14 |