1. app root directory 내부에 가상환경(venv)이 생성되어있는지 확인
2. 현재 가상환경 연결이 잘 되어있는지 확인 (source venv/bin/activate)
3. Preferences setting 확인
- Languages & Frameworks > Django
- Django project root 에 root directory설정이 잘되어있는지 확인
- settings에 settings.py 경로가 잘 셋팅 되어 있는지 확인
- Project: [서비스폴더(root folder명)]
- python interpreter : 파이썬 인터프리터 설정 제대로 되어있는지 확인(가상환경 내 python 경로)
4. Configuration
- Environment > Environment variables
- DJANGO_SETTINGS_MODULE=app.settings 확인
- Python Interpreter : 파이썬 interpreter경로 확인
- 참고(번외)
- PYTHONUNBEFFERED=1 <-- 이거 뭐?
- 위 변수는 출력 버퍼링을 셋팅하는 변수이다.
- 출력 버퍼링이란, 프로그램의 출력 데이터를 일시적으로 저장하는 메모리 영역인 버퍼에 저장한 후, 일정량이 쌓이면 한 번에 출력하는 기법을 말하는데, 출력 버퍼링의 목적은 주로 성능 향상과 입출력(I/O) 효율을 높이기 위해 설정한다.
- 출력버퍼링 설정 이유
- 성능 향상: 출력을 버퍼링하면 여러 번의 작은 출력 대신 한 번에 큰 덩어리로 출력할 수 있기 때문에, 시스템 자원을 덜 사용하고 출력 작업이 더 빨라진다고 한다.
- 입출력 효율: 출력 장치(예: 디스크, 콘솔, 네트워크)와의 통신 비용을 줄일 수 있다. 출력 작업을 매번 수행하지 않고, 데이터가 충분히 쌓이면 한 번에 전송하게 한다.
- 정렬 및 조합: 출력 데이터를 버퍼에 저장하면, 출력을 정렬하거나 다른 데이터와 조합할 수 있는 기회가 생긴다. 이를 통해 출력 결과를 더 읽기 쉽게 만들거나, 필요한 경우 데이터를 변경할 수 있다.
- 출력버퍼링 설정 단점
- 출력 버퍼링을 사용하면 당연히, 디버깅이 어려워질 수 있다. 버퍼링된 출력은 실시간으로 표시되지 않으므로, 오류가 발생했을 때 즉시 확인할 수 없고 이 때문에, 디버깅 중이거나 실시간 로깅이 필요한 경우 출력 버퍼링을 비활성화해야 한다.(1로 설정) 출력 버퍼링을 비활성화하면 파이썬은 버퍼를 사용하지 않고 출력을 즉시 표시한다. 이렇게 하면 디버깅 및 로깅을 더 쉽게 수행할 수 있지만, 애플리케이션의 성능에 약간의 영향을 미칠 수 있다.
- PYTHONUNBEFFERED=1 <-- 이거 뭐?
5. 이상태에서 runserver 진행 시, 자꾸 not module error가 뜬다?
- 혹시, project root 폴더 및 하위 소스 폴더 아이콘이 비활성화(회색)상태인가?
- 이 경우, 루트폴더를 소스 폴더로 인식하지 못해, settings.py 또한 읽어들어가지 못하기때문에 not found error가 발생하는것으로 보인다.
- 우클릭, Mark Derectory as > Sources Root 선택해서 소스 루트로 설정해준다
- 파랑색아이콘으로 변경되었다. 이제 이 폴더를 소스폴더로 인식하다는 뜻이다.
- 다시 runserver 진행 -> 정상
'Error_Log' 카테고리의 다른 글
Mecab 설치 및 trouble shooting 하기(+user-dict 셋팅) (0) | 2024.05.02 |
---|---|
[Pickle file dump error]OverflowError: cannot serialize a bytes object larger than 4 GiB (0) | 2023.03.07 |
[ML]모델 학습 진행 시 "IndexError: Target 811 is out of bounds." Error (0) | 2023.02.21 |
Jupyter notebook 파일 실행 오류(out of memory) (0) | 2023.02.20 |