2011-12-06 613 views
9

Cuando trato de ejecutar sudo ./manage.py runserver, me sale el siguiente error:Django sudo de ejecución del servidor levantando un error

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 

Correr ./manage.py runserver funciona perfectamente bien.

Haciendo un poco de búsqueda, he encontrado que esto podría estar relacionado con un error Django1.3? Sin embargo, estoy en una virtualenv ejecutando Django 1.4 pre-alpha.

La razón por la que necesito el comando sudo es porque estoy tratando de ejecutar el servidor desde el puerto 80, que requiere sudo.

Respuesta

15

Cuando ejecuta manage.py con sudo, no utiliza el entorno virtual activado. Lo más probable es que tengas otra versión de django instalada fuera de Virtualenv.

Puede ejecutar el ejecutable usando pitón de virtualenv, es decir:

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

Puede obtener pitón ruta ejecutable de virtualenv:

$ which python 
+2

Exactamente como dice bmihelac. Super9, puede ver en su rastro de pila que no está ejecutando Django desde su entorno virtual. Estás ejecutando el Django que está en tu camino en todo el sistema. RequireDebugFalse probablemente solo esté disponible en tu Virtualenv 1.4. – benjaoming

Cuestiones relacionadas