2016-10-19 4 views
0

I의 구조는 다음과 같습니다장고 ImportError를 없음 모듈 이름 x.settings

mysite 
    -> manage.py 
    -> mysite (again) 
     -> __init__.py 
     -> wsgi.py 
     -> settings.py 
     etc 
    -> myapp 
     -> __init__.py    
     -> myscript.py 
     -> models.py 
     etc 

내가 MyApp를에서 스크립트를 실행 내가 필요 (즉, 예를 들어 데이터베이스에 물건을 넣어, myapp와 관련된 일을한다) 해야 할 일

import django 
django.setup() 

from models import MyModel 수 있도록하려면. 내가 MyApp를 디렉토리에서이 작업을 수행한다면, 내가 얻을 : (? 같아요 루트)는 예컨대 manage.py과 같은 디렉토리에 디렉토리 트리까지 더입니다하지 이후로는 가지 이해

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "C:\Python27\lib\site-packages\django\__init__.py", line 22, in setup 
    configure_logging(settings.LOGGING_CONFIG, settings.LOGGING) 
    File "C:\Python27\lib\site-packages\django\conf\__init__.py", line 53, in __getattr__ 
    self._setup(name) 
    File "C:\Python27\lib\site-packages\django\conf\__init__.py", line 41, in _setup 
    self._wrapped = Settings(settings_module) 
    File "C:\Python27\lib\site-packages\django\conf\__init__.py", line 97, in __init__ 
    mod = importlib.import_module(self.SETTINGS_MODULE) 
    File "C:\Python27\lib\importlib\__init__.py", line 37, in import_module 
    __import__(name) 
ImportError: No module named mysite.settings 

. manage.py가있는 mysite에서 파이썬 인터프리터를 실행할 때이 오류가 발생하지 않습니다.

내 스크립트를 myapp에 배치하고 해당 디렉토리에서 여전히 django.setup()을 사용할 수 있으려면 어떻게해야합니까?

+0

'.' 'models import MyModel'에서 모델은'.models import MyModel'이어야합니다. –

+1

Django를 사용하고 있고 앱 컨텍스트 내에서 일부 스크립트를 실행해야하는 경우 관리 명령을 사용해야합니다 : https : // docs .djangoproject.com/ko/1.10/howto/custom-management-commands / – IanAuld

답변

1

스크립트를 실행할 때 프로젝트의 루트가 파이썬 경로에 있는지 확인해야합니다. 이 같은 것이 도움이 될 수 있습니다.

 
import os 
import sys 
projpath = os.path.dirname(__file__) 
sys.path.append(os.path.join(projpath, '..')) 
관련 문제