Джанго 1.5b1: выполнение django-admin.py вызывает ошибку "нет модуля с именем settings"

недавно я установил Django-1.5b1. Моя конфигурация системы:

  • OSX 10.8
  • Python 2.7.1
  • Virtualenv 1.7.2

когда я звоню django-admin.py команда я получаю следующую ошибку

(devel)ninja Django-1.5b1: django-admin.py 
Usage: django-admin.py subcommand [options] [args]

Options:
  -v VERBOSITY, --verbosity=VERBOSITY
                        Verbosity level; 0=minimal output, 1=normal output,
                        2=verbose output, 3=very verbose output
  --settings=SETTINGS   The Python path to a settings module, e.g.
                        "myproject.settings.main". If this isn't provided, the
                        DJANGO_SETTINGS_MODULE environment variable will be
                        used.
  --pythonpath=PYTHONPATH
                        A directory to add to the Python path, e.g.
                        "/home/djangoprojects/myproject".
  --traceback           Print traceback on exception
  --version             show program's version number and exit
  -h, --help            show this help message and exit
Traceback (most recent call last):
  File "/Users/sultan/.virtualenvs/devel/bin/django-admin.py", line 5, in <module>
    management.execute_from_command_line()
  File "/Users/sultan/.virtualenvs/devel/lib/python2.7/site-packages/django/core/management/__init__.py", line 452, in execute_from_command_line
    utility.execute()
  File "/Users/sultan/.virtualenvs/devel/lib/python2.7/site-packages/django/core/management/__init__.py", line 375, in execute
    sys.stdout.write(self.main_help_text() + 'n')
  File "/Users/sultan/.virtualenvs/devel/lib/python2.7/site-packages/django/core/management/__init__.py", line 241, in main_help_text
    for name, app in six.iteritems(get_commands()):
  File "/Users/sultan/.virtualenvs/devel/lib/python2.7/site-packages/django/core/management/__init__.py", line 108, in get_commands
    apps = settings.INSTALLED_APPS
  File "/Users/sultan/.virtualenvs/devel/lib/python2.7/site-packages/django/conf/__init__.py", line 52, in __getattr__
    self._setup(name)
  File "/Users/sultan/.virtualenvs/devel/lib/python2.7/site-packages/django/conf/__init__.py", line 47, in _setup
    self._wrapped = Settings(settings_module)
  File "/Users/sultan/.virtualenvs/devel/lib/python2.7/site-packages/django/conf/__init__.py", line 132, in __init__
    raise ImportError("Could not import settings '%s' (Is it on sys.path?): %s" % (self.SETTINGS_MODULE, e))
ImportError: Could not import settings 'settings' (Is it on sys.path?): No module named settings

у кого-нибудь были те же ошибки? Может ли кто-нибудь посоветовать или помочь?

спасибо,

Султан

6 ответов


у меня была такая же проблема при запуске нового проекта. Я решил проблему, дав эту команду в командной строке:

export DJANGO_SETTINGS_MODULE=

таким образом, я отключаю переменную, которая указывала на"settings файл" (обнаружен с помощью env | grep DJANGO_SETTINGS_MODULE) Я установил перед началом использования виртуальное окружение

после сброса переменной django-admin.py скрипт работал как шарм!


у меня была та же проблема, что и у вас, и я не придумал хорошего решения, кроме добавления моей папки проекта в PYTHONPATH следующим образом:

export PYTHONPATH="/absolute/path/to/django/project/folder:$PYTHONPATH"

где мой <project> находится в /absolute/path/to/django/project/folder/<project>. Добавлю, что до конца env/bin/activate скрипт так происходит каждый раз, когда я инициализирую virtualenv.

единственное различие между двумя ситуациями заключается в том, что я использую несколько файлов настроек вместо одного settings.py модуль.

вы можете также называют django-admin.py из папки, содержащей ваш проект Django, например:

python ~/.virtualenvs/devel/bin/django-admin.py <command>

чтобы он распознал ваш текущий рабочий каталог как часть пути.

надеюсь, что это имеет смысл. Это довольно неуклюже объяснять, что затрудняет поиск ответа.


возможно, ваша проблема связана с этим: неверный путь python в заголовке скрипта

Если вы хотите сделать что-нибудь, кроме создания нового проекта django внутри вашего venv, вы должны позвонить python manage.py (конечно, whereis python должен вернуть ваш исполняемый файл venv)


Не запускайте скрипт из прямого пути в библиотеку django; запустите его из любого другого пути. Кажется, ты cd в каталог, где установлен django (или где вы загрузили и расширили его), а затем запустили команду оттуда.

Так что попробуйте это:

(devel)ninja Django-1.5b1: cd 
(devel)ninja: django-admin.py startproject foo

вы уверены, что запускаете Django-admin из установки virtualenv django ? Возможно path/to/virtualenv/bin/django-admin.py


для легкого решения вы можете попробовать

python. \Scripts\django-admin.py startproject имяпроекта

после этого запустить