2011-12-06 11 views
9

Quando provo a fare funzionare sudo ./manage.py runserver, ottengo il seguente errore:django sudo runserver sollevando un errore

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 

Esecuzione ./manage.py runserver opere perfettamente bene.

Facendo un po 'di ricerche, ho scoperto che questo potrebbe essere correlato a un bug di Django1.3? Tuttavia, sono in una virtualenv con pre-alpha Django 1.4.

Il motivo per cui ho bisogno del comando sudo è perché sto cercando di eseguire server dalla porta 80 che richiede sudo.

risposta

15

Quando si esegue manage.py con sudo non viene utilizzato l'ambiente virtuale attivato. Molto probabilmente, hai un'altra versione di django installata all'esterno di virtualenv.

È possibile eseguire il file eseguibile utilizzando Python da virtualenv, vale a dire:

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

È possibile ottenere pitone percorso eseguibile da virtualenv:

$ which python 
+2

Esattamente come dice bmihelac. Super9, puoi vedere nella traccia dello stack che non stai eseguendo Django dal tuo ambiente virtuale. Stai eseguendo il Django che si trova nel tuo percorso a livello di sistema. RequireDebugFalse è probabilmente disponibile solo nella versione 1.4 virtuale. – benjaoming

Problemi correlati