해당 경로에 분명 env.py 파일과 init.py 파일이 있었다.
그러나, ModuleNotFoundError가 발생하면서 계속 파일을 찾지 못했다.
Traceback (most recent call last):
File "/data/app/service/run_openai.py", line 4, in <module>
from app.core.env import OPENAI_API_KEY
ModuleNotFoundError: No module named 'app'
1차 해결 시도
현재 디렉토리 밖에서 파일을 import하기 위해 조사한 결과
sys.path.append()를 이용하라는 문서가 많이 보였다.
현재의 프로젝트 폴더에서부터 패키지가 시작됨을 파이썬에서 알 수 있도록 다음과 같이 환경 변수를 추가해야 한다.
윈도우에서는 export 대신 set 명령어를 이용한다.
root@817ec7546bb8:/data# export PYTHONPATH=$PWD
이제는 파일 실행 시 ModuleNotFoundError가 표시되지는 않았다.
root@817ec7546bb8:/data/app/service# python run_openai.py
/usr/local/lib/python3.12/site-packages/langchain_core/_api/deprecation.py:117: LangChainDeprecationWarning: The function `run` was deprecated in LangChain 0.1.0 and will be removed in 0.2.0. Use invoke instead.
warn_deprecated(
세 줄 요약
ModuleNotFoundError: No module named 'app'
root@container:/data# export PYTHONPATH=$PWD
python OOO.py
-> 실행 성공문제 상황
다음과 같이
python OOO.py
명령으로 파이썬 코드 실행을 시도했다.해당 경로에 분명 env.py 파일과 init.py 파일이 있었다. 그러나, ModuleNotFoundError가 발생하면서 계속 파일을 찾지 못했다.
1차 해결 시도
현재 디렉토리 밖에서 파일을 import하기 위해 조사한 결과
sys.path.append()
를 이용하라는 문서가 많이 보였다.Google 검색 결과: Python import from parent directory
그러나 os, sys를 이용한 경로 변경은 전혀 도움이 되지 못했다.
2차 해결 시도
추가로 검색을 하다가 다음과 같은 FastAPI 레포지토리에서의 다음 Issue를 발견하였다.
https://github.com/tiangolo/fastapi/issues/2582#issuecomment-752845856
현재의 프로젝트 폴더에서부터 패키지가 시작됨을 파이썬에서 알 수 있도록 다음과 같이 환경 변수를 추가해야 한다. 윈도우에서는
export
대신set
명령어를 이용한다.이제는 파일 실행 시 ModuleNotFoundError가 표시되지는 않았다.