![Python 셸에서 가져오려고 하면 Django에서 ImproperlyConfigured 오류가 발생하는 이유는 무엇입니까?](https://linux55.com/image/224765/Python%20%EC%85%B8%EC%97%90%EC%84%9C%20%EA%B0%80%EC%A0%B8%EC%98%A4%EB%A0%A4%EA%B3%A0%20%ED%95%98%EB%A9%B4%20Django%EC%97%90%EC%84%9C%20ImproperlyConfigured%20%EC%98%A4%EB%A5%98%EA%B0%80%20%EB%B0%9C%EC%83%9D%ED%95%98%EB%8A%94%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
이 질문은 제가 Django를 사용하기 시작한 이후로 저를 괴롭혔습니다. project
앱이 포함된 프로젝트가 있고 app
이를 검사하고 싶다고 가정해 보겠습니다. 따라서 Python 셸에서 해당 부분을 가져올 수 있습니다.
(virtualenv) $ PYTHONPATH=. python
Python 3.9.2 (default, Feb 28 2021, 17:03:44)
[GCC 10.2.1 20210110] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import project.app.views
(...cut traceback...)
django.core.exceptions.ImproperlyConfigured: Requested setting INSTALLED_APPS,
but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE
or call settings.configure() before accessing settings.
아름다운. 그래서 당신은 다음을 설정했습니다 DJANGO_SETTINGS_MODULE
:
(virtualenv) $ PYTHONPATH=. DJANGO_SETTINGS_MODULE=project.project.settings python
Python 3.9.2 (default, Feb 28 2021, 17:03:44)
[GCC 10.2.1 20210110] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import project.app.views
(...cut traceback...)
django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.
다음에 무엇을 해야할지에 대한 설명이 없습니다.
답변1
정답은:
- ( 프로젝트 이름은 어디에 있습니까?)
DJANGO_SETTINGS_MODULE
로 설정하세요 .project.project.settings
project
- Python 셸에서는
import django; django.setup()
이것이 가장 먼저 수행하는 작업입니다.
예를 들면 다음과 같습니다.
(virtualenv) $ PYTHONPATH=. DJANGO_SETTINGS_MODULE=project.project.settings python
Python 3.9.2 (default, Feb 28 2021, 17:03:44)
[GCC 10.2.1 20210110] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import django; django.setup()
>>> import project.app.views
문제 없다!