Недавно я переместил приложение django из c:\Users\user\django-projects\foo\foobar в c:\Python25\Lib\site-packages\foo\foobar (которое находится на пути Python). Я запустил новое приложение в каталоге django-projects и добавил foo.foobar в настройку INSTALLED_APPS. Когда я пытаюсь запустить сервер разработки (manage.py runserver) для своего нового приложения, я получаю сообщение об ошибке ImportError: No module named foobar.

Просматривая трассировку, он ищет в c:\Users\user\django-projects\foo\..\foo\foobar приложение foobar. Я проверил свои переменные среды PATH и PYTHONPATH, и ни одна из них не указывает на c:\Users\user\django-projects\foo, и это не отображается в sys.path, когда я запускаю интерпретатор python.

Я предполагаю, что я каким-то образом добавил c:\Users\user\django-projects\foo в путь django когда-то в процессе разработки foo, но я не помню, как я это сделал.

Итак, с учетом всего этого, мой вопрос: «как мне заставить manage.py смотреть в c:\Python25\Lib\site-packages вместо c:\Users\user\django-projects\foo

Благодарность,

  • Lexo
0
Lexo 5 Авг 2010 в 05:30

2 ответа

Лучший ответ

manage.py импортирует settings.py из текущего каталога и передает settings в качестве параметра в execute_manager. Вероятно, вы определили корень проекта в settings.py.

1
laurent 5 Авг 2010 в 02:26

Я исправил это, хотя не знаю, какое решение сработало. Сначала я удалил файлы .pyc из своего проекта, затем переиндексировал поиск в Windows (я предполагаю, что это сделало это). Это изменило сообщение об ошибке на правильный каталог. После чего я понял, что

from baz import settings

В моем файле foobar/baz/models.py, который все время был причиной проблемы. Я изменил это на

import settings

Что устранило проблему. Спасибо laurent за вашу помощь :-)

1
Lexo 28 Сен 2015 в 21:20