PyCharm와 같은 IDE를 활용하여 개발하는 것의 장점은 터미널의 명령어가 아닌 버튼 하나로 프로젝트 실행을 할 수 있다는 것이다. 우선 PyCharm 상단의 버튼을 통해 Run/Debug Configurations 창을 다음과 같이 연다.
Host를 localhost가 아닌 0.0.0.0으로 설정한 이유는 테스트를 위해 포트포워딩과 같은 방법으로 외부와 통신을 하기 위함이다. localhost 또는 127.0.0.1로 설정하게 된다면 내부 사용 용도로, 시스템 내부에서만 다른 프로세스와 통신할 수 있다.
Environment variables에는 다음과 같은 설정을 했다.
DJANGO_SETTINGS_MODULE=config.settings.dev
PYTHONPATH=/c/Users/user/Desktop/roccia_901_server
PYTHONUNBUFFERED=1
ettings=config.settings.dev
을 대신하는 환경변수이다.하지만 manage.py에 아래와 같이 설정했다면 설정하지 않아도 괜찮다.
PYTHONPATH
PYTHONPATH 환경 변수는 인터프리터가 모듈을 검색할 때 참조하는 경로 목록을 지정한다. 이 환경 변수는 파이썬이 프로그램을 실행할 때 모듈이 위치할 수 있는 추가적인 디렉토리를 인터프리터에 알려준다.
참고로 Django 프로젝트의 상위 디렉토리를 설정했다. Django의 루트 디렉토리 설정 시, 모듈을 인식하지 못하는 문제가 있었기 때문이다.(상위 디렉토리, 루트 디렉토리 둘 다 지정해도 무방하다.)
PYTHONUNBUFFERED
PYTHONUNBUFFERED 환경 변수에는 0 또는 1을 설정할 수 있다. 1을 설정하면, 파이썬 인터프리터는 표준 출력(standard output)이나 표준 에러(standard error)를 버퍼링하지 않게 된다. 즉, 출력이나 에러 메시지가 즉시 콘솔에 표시된다.
PyCharm에서 dev 환경으로 개발할 것이기 때문에 .env.dev 파일 경로를 설정했다. 나는 개발 환경을 나눠서 개발을 했기 때문에 이와 같이 설정했지만, 각자의 상황에 맞게 설정하면 된다.
하단에 Fix
버튼을 통해 다음 설정을 추가로 진행해보자. 참고로 Settings > Language & Frameworks > Django 로 이동하여 동일한 창을 열 수 있다.
다음과 같이 설정하면 된다. 설정 하나씩 살펴보자.
Django Project root : 장고 서버의 루트 디렉토리를 설정한다.
Settings : 실행할 환경의 설정 파일을 등록한다.
Manage script : Manage.py를 등록하면 된다.
위와 같이 설정하고 실행했을 때, 문제 없이 실행될 수도 있지만 다음과 같은 에러가 발생할 수도 있다.
Fatal Python error: init_stdio_encoding: failed to get the Python codec name of the stdio encoding
해당 에러는 IDE 내부에서 발생한 에러로, Python이 표준 입력/출력에 사용할 문자 인코딩을 초기화하는 과정에서 문제가 발생했음을 나타낸다. 해결 방법으론 아래의 두 가지 방법이 있는데, 둘 다 시도 해보길 바란다.
Settings > Editor > File Encodings > Project Encoding으로 이동 후 다음과 같이 두 가지의 Encoding을 UTF-8로 변경한다.
Settings > Editor > General > Console > Default Encoding으로 이동 후 다음과 같이 Default Encoding을 UTF-8로 변경한다.