이 질문은 제가 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
문제 없다!