Django: ошибка импорта с django-admin.py - PullRequest
2 голосов
/ 25 февраля 2012

В настоящее время я создал две символические ссылки для Django в /Users/hobbes3/Sites/. A ls -l показывает следующее

lrwxr-xr-x   1 hobbes3  staff    66B Feb 23 04:16 django -> /usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages/django/
lrwxr-xr-x   1 hobbes3  staff    85B Feb 23 01:01 django-admin.py -> /usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages/django/bin/django-admin.py
drwxr-xr-x  15 hobbes3  staff   510B Feb 24 16:04 mysite/

где mysite/ - мой единственный проект Django (построен из официального руководства по опросам).

Когда я набираю python django-admin.py, все отлично работает

hobbes3@hobbes3:~/Sites$ python django-admin.py
Usage: django-admin.py subcommand [options] [args]

Options:
  -v VERBOSITY, --verbosity=VERBOSITY
                        Verbosity level; 0=minimal output, 1=normal output,
                        2=all 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

Type 'django-admin.py help <subcommand>' for help on a specific subcommand.

Available subcommands:
  cleanup
  compilemessages
  createcachetable
  dbshell
  diffsettings
  dumpdata
  flush
  inspectdb
  loaddata
  makemessages
  reset
  runfcgi
  runserver
  shell
  sql
  sqlall
  sqlclear
  sqlcustom
  sqlflush
  sqlindexes
  sqlinitialdata
  sqlreset
  sqlsequencereset
  startapp
  startproject
  syncdb
  test
  testserver
  validate

Но когда я пытаюсь использовать команду inspectdb, я получаю ошибку импорта

hobbes3@hobbes3:~/Sites$ python django-admin.py inspectdb doors-eer
Traceback (most recent call last):
  File "django-admin.py", line 5, in <module>
    management.execute_from_command_line()
  File "/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages/django/core/management/__init__.py", line 429, in execute_from_command_line
    utility.execute()
  File "/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages/django/core/management/__init__.py", line 379, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages/django/core/management/__init__.py", line 261, in fetch_command
    klass = load_command_class(app_name, subcommand)
  File "/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages/django/core/management/__init__.py", line 67, in load_command_class
    module = import_module('%s.management.commands.%s' % (app_name, name))
  File "/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File "/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages/django/core/management/commands/inspectdb.py", line 5, in <module>
    from django.db import connections, DEFAULT_DB_ALIAS
  File "/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages/django/db/__init__.py", line 14, in <module>
    if not settings.DATABASES:
  File "/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages/django/utils/functional.py", line 276, in __getattr__
    self._setup()
  File "/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages/django/conf/__init__.py", line 40, in _setup
    raise ImportError("Settings cannot be imported, because environment variable %s is undefined." % ENVIRONMENT_VARIABLE)
ImportError: Settings cannot be imported, because environment variable DJANGO_SETTINGS_MODULE is undefined.

Я заметил, что могу нормально запускать проекты с python django-admin.py startproject asd.

Я использую Python 2.7.2 и Django 1.3.1.

1 Ответ

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

django-admin.py ищет ваш файл settings.py, который должен находиться в /Users/hobbes3/Sites/mysite.

Если вы перейдете в ~ / Sites / mysite, то запустите django-admin.py inspectdb doors-eer, это должно сработать.

Предполагается, что у вас есть настройка переменной DATABASE в settings.py.

Кроме того, после того, как вы создали проект, более обычным способом использования Django является вызов manage.py inspectdb после создания проекта. При вызове django-admin.py переменные среды не могут быть правильно настроены, и Django не найдет ваш файл settings.py.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...