2016-08-11 5 views
1

저는 장고를 배우고 있으며 계속 장애물에 부딪 치고 장애물을 극복하기 위해 인터넷 검색을하는 데 시간이 걸립니다. 그러나이 사람은 20 분 이상 나를 데려 갔고 나는 아직도 대답을 모른다.ImportError : 모듈이 없습니다. app.models

나는 이것이 간단하지만 많은 것을 시도했으며 내 models.py에 액세스 할 수없는 것으로 알고 있습니다. 나는

다음
#!/usr/bin/env python 

import csv 
import os 
import sys 

sys.path.append("..") 

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project.settings") 

from app.models import State 

states = State.objects.all() 

for state in states: 
    print state.name 

스크립트를 포함 내 스크립트 폴더에 경로입니다 컨텍스트에서 코드 같은 오류

에게 오류

Traceback (most recent call last): File "import_states.py", line 11, in from app.models import State ImportError: No module named app.models

가 계속

/Users/ahmedawayhan/Development/projects/states/project/scripts 
여기

와는 어떤 도움을 주시면 감사하겠습니다

/Users/ahmedawayhan/Development/projects/states/app 

models.py이 들어있는 폴더에 경로입니다.

+0

내가 장고에 익숙하지 않은 해요 -하지만 내가 정확히 기억한다면, 호출'수입 app.models' 스크립트의 디렉토리에 폴더'app' 찾습니다. 그것이 사실이 아니기 때문에, 그것은 실패합니다. – nlsdfnbch

+1

'states/app /'디렉토리에'__init __. py'가 있다는 것을 확인할 수 있습니까? – nlsdfnbch

+0

예 '__init__.py'가 있으며 ./manage.py 셸을 사용하여 스크립트를 실행하면 app.models에서 가져올 수 있으며 작동합니다. –

답변

1

이렇게하지 마십시오. 장고 방식으로하십시오. 먼저 읽기에 대한 custom management command

그리고 추가

응용 프로그램/관리/명령/import_states.py

from django.core.management.base import BaseCommand 
from app.models import State 

class Command(BaseCommand): 
    def handle(self, *args, **options): 

    states = State.objects.all() 

    for state in states: 
     print state.name 

를하고 전화 : 당신은 정말 Your- 필요한 경우

python manage.py import_states 

을 way :

sys.path.append("../..") 

또는 전화는 :

python project/scripts/import_states.py 
+0

고마워요! –