django sudo runserver выдает ошибку - PullRequest
9 голосов
/ 06 декабря 2011

Когда я пытаюсь запустить sudo ./manage.py runserver, я получаю следующую ошибку:

Traceback (most recent call last):
  File "./manage.py", line 9, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 429, in execute_from_command_line
    utility.execute()
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 379, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 252, in fetch_command
    app_name = get_commands()[subcommand]
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 101, in get_commands
    apps = settings.INSTALLED_APPS
  File "/usr/local/lib/python2.7/dist-packages/django/utils/functional.py", line 276, in __getattr__
    self._setup()
  File "/usr/local/lib/python2.7/dist-packages/django/conf/__init__.py", line 42, in _setup
    self._wrapped = Settings(settings_module)
  File "/usr/local/lib/python2.7/dist-packages/django/conf/__init__.py", line 139, in __init__
    logging_config_func(self.LOGGING)
  File "/usr/lib/python2.7/logging/config.py", line 776, in dictConfig
    dictConfigClass(config).configure()
  File "/usr/lib/python2.7/logging/config.py", line 562, in configure
    'filter %r: %s' % (name, e))
ValueError: Unable to configure filter 'require_debug_false': Cannot resolve 'django.utils.log.RequireDebugFalse': No module named RequireDebugFalse

Запуск ./manage.py runserver работает отлично.

Немного покопавшись, я обнаружил, что это может быть связано с ошибкой в ​​Django1.3?Однако я в virtualenv работаю с пре-альфа-версией Django 1.4.

Причина, по которой мне нужна команда sudo, заключается в том, что я пытаюсь запустить сервер с порта 80, который требует sudo.

1 Ответ

15 голосов
/ 06 декабря 2011

Когда вы запускаете manage.py с sudo, он не использует активированную виртуальную среду. Скорее всего, у вас установлена ​​другая версия django вне virtualenv.

Вы можете запустить с помощью исполняемого файла python из virtualenv, то есть:

$ sudo /home/USER/.virtualenvs/YOUR_PROJECT/bin/python manage.py runserver

Вы можете получить путь к исполняемому файлу python из virtualenv:

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