Una diferencia es que "./script.py" solo funciona si script.py es ejecutable (como en permisos de archivos), pero "python script.py" funciona independientemente. Sin embargo, sospecho fuertemente que hay más diferencias, y quiero saber cuáles son.Al invocar un script de Python, ¿cuál es la diferencia entre "./script.py" y "python script.py"
Tengo un sitio web de Django, y "python manage.py syncdb" funciona bien, pero "./manage.py syncdb" crea una base de datos rota por alguna razón que sigue siendo un misterio para mí. Tal vez tiene que ver con el hecho de que syncdb pide un nombre de superusuario y una contraseña desde la línea de comandos, y tal vez usar "./manage.py syncdb" cambia la forma en que interactúa con la línea de comando, lo que hace que se modifique la contraseña. ¿Tal vez? Estoy desconcertado por este error. "python manage.py syncdb" lo arregla completamente, así que esto es solo curiosidad.
Gracias.
Editar: Bien, bien, me olvidé de la necesidad de la línea de shebang #!/Usr/bin/python. Pero acabo de comprobar, "python manage.py syncdb" y "syncdb ./manage.py" están utilizando el mismo intérprete de Python (2.7.2, el único instalado, en Linux Mint 12). Sin embargo, el primero funciona y el segundo no.
¿Podrían las variables de entorno vistas por el código de Python ser diferentes? Mi código requiere $ LD_LOADER_PATH y $ PYTHON_PATH para ser especial para cada shell.