2012-09-03 22 views
5

En mi proyecto django, el comando ./manage.py [command] resultados en este mensaje de error:error "No existe el fichero o directorio" cuando se ejecuta Django ./manage.py

: No such file or directory 

el comando python manage.py [command] funciona bien. Intenté con syncdb y runserver. Intenté chmod a+x manage.py, pero el problema persiste.

Mi manage.py:

#!/usr/bin/env python 
import os 
import sys 

if __name__ == "__main__": 
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myproject.settings") 

    from django.core.management import execute_from_command_line 

    execute_from_command_line(sys.argv) 

lo uso Django 1.4.1 en un virtualenv. ¿Cómo puedo solucionar esto para usar manage.py [command]?

+0

¿Estás seguro de que estás en el directorio correcto? –

+0

¿Qué le proporciona '/ usr/bin/env python' cuando se ingresa en la terminal? –

+0

Estoy seguro, @Snakes. 'python manage.py [command]' no funcionaría en un directorio incorrecto ;-) – msampaio

Respuesta

2

La línea hash-bang #! no apunta a su virtualenv python; sustituir a la primera línea con:

#!/path/to/virtualenv/bin/python 
2

En mi proyecto Django, los resultados de la ./manage.py mando [comando] en este mensaje de error:

: No existe el fichero o directorio

El comando python manage.py [comando] funciona bien

Si la especificación del intérprete lo hace funcionar, entonces es la primera línea que m UST estar equivocado:

#!/usr/bin/env python 

Probar:

#!/usr/bin/python 

(o donde el intérprete es. Encuéntrelo con: which python).

9

Probablemente, la razón se debe a que las terminaciones de línea en el archivo manage.py son \ n en lugar de \ r \ n. Como resultado, el #! hash-bang es malinterpretado.

Esto me sucede cuando uso un editor de texto basado en Windows para mi conexión de Linux.

+4

En Unix, usa "dos2unix" para solucionarlo. – Bryce

+0

Esto funciona. ¿Pero cuál es la razón detrás de esto? – in3xes

+0

@ in3xes, en un entorno Linux necesita usar convenciones de Linux. – Octopus

0

En mi caso, estaba cambiando erróneamente el sys.path en mi manage.py.

Cuestiones relacionadas