новичок на питоне: импорт mysite.manage не удается? - PullRequest
3 голосов
/ 25 февраля 2012

Отказ от ответственности: я новичок в python и django, но у меня есть опыт программирования на Drupal.Я использую Windows 7 (те же проблемы в Windows XP)

На python 2.7 и Django-1.3.1 я успешно создал проект по умолчанию

django-admin.py startproject djsite

Теперь мне нужно "bootstrap "djsite.manage, как описано здесь (http://www.pyinstaller.org/wiki/Recipe/DjangoApplication) в файле с именем bootstrap.py, расположенном в родительском каталоге djsite следующим образом:

import djsite.manage
djsite.manage.execute_manager(djsite.manage.settings,['manage.py', 'runserver'])

Тем не менее, как только компилятор увидит:

import djsite.manage

Я получаю следующее: «Ошибка: не удается найти файл« settings.py »в каталоге, содержащем« C: \ Python27 \ Lib \ site-packages \ djsite \ manage.pyc ».настраиваемые вещи ... Вам нужно будет запустить django-admin.py, передав ему модуль настроек. "И я не знаю, как в этой ситуации последовать совету ошибки.

Однако, еслиВместо этого я запускаю следующее в bootstrap.py:

import os, sys
sys.path.append(os.path.abspath('djsite'))
import djsite.manage
djsite.manage.execute_manager(djsite.manage.settings,['manage.py', 'runserver'])

скрипт работает правильно, но он ломает Pyinstaller (я уже задавал этот вопрос в списке рассылки этого программного обеспечения (http://groups.google.com/group/pyinstaller/browse_thread/thread/174a72e26c26a44c). Даже если я добавлюпуть к djsite в моей переменной PATH, я получаю ту же ошибку.

Так что мойВопрос заключается в следующем: почему импорт модуля manage.py завершается неудачно с этим подходом и как я могу продолжить?Спасибо!

1 Ответ

2 голосов
/ 25 февраля 2012

Попробуйте добавить это в свой bootstrap.py, чтобы сообщить, где находится ваш файл настроек:

import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'djsite.settings'

Это предполагает, что djsite находится в вашем pythonpath. То есть, если он находится здесь: /path/to/my/djsite, то это должно быть в вашем pythonpath: /path/to/my

На самом деле лучший способ сделать это с самого начала - использовать virtualenv , который обеспечит правильную среду. Я чувствую, что это должно было быть частью вашего урока, если я вообще помню начальную загрузку. Если вы используете virtualenv, убедитесь, что вы запомнили source bin/activate

Если это не сработает, вы можете попробовать изменить команду runserver:

args = ['manage.py', 'runserver', '--settings=/path/to/my/djsite/settings.py']
djsite.manage.execute_manager(djsite.manage.settings, args)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...