2013-07-02 1 views
0

장고는 모든 것을 기록한 후에도 계속 말하면서 Google에서 도움을 얻을 수없는 것 같습니다. 구조가 변경되지 않았다, 어느 쪽도 제가 models.py를 제외하고 아무것도 수정 않았다Django - ImportError : 도시라는 모듈이 없습니다

$ tree 
. 
|-- project 
| |-- __init__.py 
| |-- __init__.pyc 
| |-- settings.py 
| |-- settings.py~ 
| |-- settings.pyc 
| |-- urls.py 
| |-- urls.pyc 
| |-- wsgi.py 
| `-- wsgi.pyc 
|-- city 
| |-- __init__.py 
| |-- __init__.pyc 
| |-- models.py 
| |-- models.pyc 
| |-- tests.py 
| `-- views.py 
|-- course 
| |-- __init__.py 
| |-- __init__.pyc 
| |-- models.py 
| |-- models.pyc 
| |-- tests.py 
| `-- views.py 
|-- manage.py 
|-- perk 
| |-- __init__.py 
| |-- __init__.pyc 
| |-- models.py 
| |-- models.pyc 
| |-- static 
| |-- tests.py 
| `-- views.py 
|-- preuniversity 
| |-- __init__.py 
| |-- __init__.pyc 
| |-- models.py 
| |-- models.py~ 
| |-- models.pyc 
| |-- tests.py 
| `-- views.py 
`-- user 
    |-- __init__.py 
    |-- __init__.pyc 
    |-- models.py 
    |-- models.py~ 
    |-- models.pyc 
    |-- tests.py 
    `-- views.py 

, 인 : 난 그냥 장고 튜토리얼 다음있어

$ cat city/models.py 
from django.db import models 

class State(models.Model): 
    acronym = models.CharField(max_length=2) 
    name = models.CharField(max_length=32) 

class City(models.Model): 
    name = models.CharField(max_length=32) 
    state = models.ForeignKey(State) 

아니, 다음과 같이 프로젝트 폴더입니다 더 많지 않으며, 해결책이 없습니다. 나는 모든 응용 프로그램에서 startapp을 사용했고 (단지 & 다른 것으로부터 붙여 넣기를하지 않았 음) 앱 이름은 settings.py에 있습니다.

도시에 대한 모든 참조 (외래 키, 가져 오기 및 installed_apps에서 제거)를 제거하면 다음 app (코스)에 대해 불만을 토로합니다.

+0

'도시'는 경로에 없을 가능성이 큽니다. 'manage.py' 파일을 보여줄 수 있습니까? 또는'city'를'project' 폴더로 옮깁니다 ('projects /'가 경로에 있음을 의미합니다) – karthikr

+0

어떤 모듈에서 city/models.py를 가져 오나요? 당신의 의견에 있습니까 – user1050619

+0

@karthikr 확실하지 않습니다 도움이된다면, manage.py가 기본 것이지만, 어쨌든 : http://pastebin.com/P6pakAB7 – ranisalt

답변

0

주요 응용 프로그램의 루트 디렉토리에 도시 (가져 오려는 파일)를 넣으십시오. IDE (예 : PyCharm)가이 모듈을 가져 오는 것에 대해 걱정할 필요가없는 경우 - 경로에 문제가있는 것보다.

나는이 문제를 즉시 해결했습니다. 그리고 문제의 경로가있었습니다.

+0

나는 IDE를 사용하지 않고, 나는 터미널과 gedit에서만 일하고있다. City dir은 이미 root 디렉토리에 있습니다. (manage.py를 사용하는 디렉토리입니까?) – ranisalt

1

프로젝트 폴더에있는 내용 때문에 django 1.4 이상을 사용한다고 가정합니다.

django-admin.py startproject으로 최상위 디렉토리를 만드셨습니까? project 디렉토리가 settings.py이고 urls.py인데도 최상위 레벨에 __init__.py 파일이 표시되지 않습니다. 최상위 레벨 (manage.py의 형제)에 __init__.py이라는 빈 파일을 생성하고 도움이되는지 확인하십시오.

+0

예,했으나 아무 것도 변경되지 않았습니다. – ranisalt

+0

settings.py를 보여주십시오. 또한 개발 서버 (runserver) 또는 Apache와 같은 웹 서버에서 django를 실행하고 있습니까? –

+0

정말 필요하지 않습니다. 나는 그것을 고칠 수 있었고 곧 대답 할 것이다. – ranisalt

0

그래서 나는 오류를 해결할 수있었습니다. 아마 질문에 대한 중요한 정보를 잊어 버렸지 만 설명은 여기에 있습니다 :

Eclipse 용 PyDev를 다운로드하고 프로젝트를 처음부터 다시 빌드했습니다. 그래서 제가 수입품을 쓰고있을 때, 이클립스는 그것이 옳지 않다고 불평했습니다. 글쎄, 나는 장고 튜토리얼로 돌아 갔고 import city이있다. 그래서 나는 옳았다. 나는 이클립스의 제안을 받아 들였고 from city.models import City으로 바뀌었다. 따라서 이전 프로젝트를 테스트하고 모든 가져 오기를 변경했으며 오류없이 유효성을 검사하고 동기화했습니다.

이제 장고 문서가 어떻게 잘못 될 수 있는지 매우 혼란 스럽습니다. 아니면이 Python 버전이나 배포판의 특성입니까? 음, 신경 쓰지 마세요, 지금 작동 중입니다. 모두에게 감사드립니다. P