환경변수 트러블 슈팅 - 100-hours-a-week/12-marong-Wiki GitHub Wiki
📍 환경변수 경로 관련 트러블슈팅
dev
환경에서 main.py
실행 시 상대경로 상 잘못된 경로를 지정하여 Chroma_db가 잘 실행되지 않는 문제가 발생
- 그래서
chroma_client
가 제대로 초기화되지 않아 장소 추천 모듈이 적절하게 실행하지 않는 문제가 발생
for metadata, dist in zip(review_results["metadatas"][0], review_results["distances"][0]):
sim = (1 - dist) * 4
score_rows.append({
"rating": float(metadata.get("평균별점", 0)),
"distance": haversine(lat, lng, metadata.get("위도"), metadata.get("경도")),
"similarity": sim
})
스코어 정규화 및 가중치 계산 실패: similarity
- 이는 run_chroma.py가 현재 디렉토리 기준 상위 디렉토리의 .env 파일을 적절하게 참조하지 못하여 발생
✔️ 원인 분석
영역 |
원인 설명 |
Chroma Client 초기화 문제 |
현재 디렉토리 기준 상위 디렉토리의 .env 파일을 적절하게 참조하지 못하여 발생 |
✔️ 해결 방법
현재 파일의 부모 디렉토리의 부모 디렉토리(현재 디렉토리의 부모 디렉토리 내) .env
파일을 참조하는 방식으로 변경
# 기존
load_dotenv()
CHROMA_PORT = os.getenv("CHROMA_PORT")
# 이후
dotenv_path = Path(__file__).resolve().parent.parent / ".env"
load_dotenv(dotenv_path=dotenv_path)
CHROMA_PORT = os.getenv("CHROMA_PORT")
✔️ 결과 및 회고
항목 |
잘못된 방식 |
수정된 방식 |
.env 파일 로드 방식 변경 |
스크립트 파일이 위치한 디렉토리 내 .env 불러오는 방식 |
현재 파일의 부모 디렉토리의 부모 디렉토리(현재 디렉토리의 부모 디렉토리 내) .env 파일을 참조하는 방식으로 변경 |
- 모듈화를 진행하면서 참조 경로까지 적절하게 변경하는 것이 중요하다는 것을 인식
dotenv_path = Path(__file__).resolve().parent.parent / ".env"
방식을 주 방식으로 사용할 것으로 예상됨