Почему я не могу импортировать модули в проекте Django?
Я пытаюсь подобрать старый проект Django, и моя ближайшая цель - посмотреть, что я могу запустить на своем компьютере на сервере разработки. Я получил:
Внутреннее святилище ~/ прагматометр $ python manage.py runserver Traceback (последний вызов был последним): Файл "manage.py", строка 10, в execute_from_command_line(sys.argv) Файл "/Library/Python/2.7/site-packages/django/core/management/__init__.py", строка 399, в execute_from_command_line utility.execute() Файл "/Library/Python/2.7/site-packages/django/core/management/__init__.py", строка 392, в исполнении self.fetch_command(субкоманда).run_from_argv(self.argv) Файл "/Library/Python/2.7/site-packages/django/core/management/__init__.py", строка 261, в fetch_command commands = get_commands() Файл "/Library/Python/2.7/site-packages/django/core/management/__init__.py", строка 107, в get_commands apps = settings.INSTALLED_APPS Файл "/Library/Python/2.7/site-packages/django/conf/__init__.py", строка 54, в __getattr__ self._setup(имя) Файл "/Library/Python/2.7/site-packages/django/conf/__init__.py", строка 49, в _setup self._wrapped = Настройки (settings_module) Файл "/Library/Python/2.7/site-packages/django/conf/__init__.py", строка 132, в __init__ % (self.SETTINGS_MODULE, e) ImportError: Не удалось импортировать настройки 'pragmatometer.settings' (Это на sys.path? Есть ли ошибка импорта в файле настроек?): Нет модуля с именем pragmatometer.settings
Вот некоторые результаты командной строки:
Внутреннее святилище ~/ прагматометр $ /bin/pwd /Users/ Ионафан / pragmatometer Внутреннее святилище ~/ прагматометр $ echo $PYTHONPATH /Users/ Ионафан Внутреннее святилище ~/ прагматометр $ python Python 2.7.10 (по умолчанию, 14 июля 2015, 19:46:27) [GCC 4.2.1 Совместимый Apple LLVM 6.0 (clang-600.0.39)] на дарвине Введите "помощь", "авторское право", "кредиты" или "лицензия" для получения дополнительной информации. >>> импорт прагматометра Traceback (последний вызов был последним): Файл "", строка 1, в ImportError: нет модуля с именем pragmatometer >>> импорт pragmatometer.settings Traceback (последний вызов был последним): Файл "", строка 1, в ImportError: нет модуля с именем pragmatometer.settings >>>
Что я должен делать, что я не? (Или, поскольку это был более старый проект, я должен просто начать с нового нового проекта?)
Спасибо,
3 ответа
Я нашел виновника или, по крайней мере, виновника. Я пропустил (в моем.bashrc) "экспорт", и теперь я столкнулся с другой проблемой.
Проект Django обычно выглядит примерно так (я думаю, с Django 1.4 и выше).
myproject
myproject
__init__.py
settings.py
app1
app2
Вы можете посмотреть в Интернете примеры и варианты этого.
Обратите внимание, что есть myproject
каталог, содержащий настройки, под верхним уровнем myproject
,
У тебя все выглядит так?
Или вы изначально нацелены на старую версию Django, которая использует другой макет?
Если вы попытаетесь сделать это:
PYTHONPATH=/Users/jonathan python
import pragmatometer
как в вашем втором блоке кода, это будет лечить /Users/jonathan
как пакет Python и искать /Users/jonathan/__init__.py
, который, вероятно, не существует), поэтому он не будет проверять /Users/jonathan/pragmatometer/settings.py
,
Каждый проект django поставляется с файлом settings.py, и django откажется запускать или загружать модели, пока этот файл settings.py не будет загружен.
Файл settings.py должен находиться в модуле и быть частью вашей текущей PYTHONPATH, а также env. переменная DJANGO_SETTINGS_MODULE должна быть установлена на него.
Например:
# assuming your file is under /myproject/mywebsite/settings.py
export PYTHONPATH=/myproject/
export DJANGO_SETTINGS_MODULE=mywebsite.settings