Почему я не могу импортировать модули в проекте 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
Другие вопросы по тегам