2009-02-10 4 views
25

J'essaie d'exécuter un script python. Il fonctionne très bien quand je le lance:Ajout d'une cause shebang Aucune erreur de fichier ou de répertoire lors de l'exécution de mon script python

python2.5 myscript.py inpt0 

Le problème commence quand j'ajoute un tralala:

#!/usr/bin/env python2.5 

Résultat dans:

$ myscript.py inpt0 
: No such file or directory 

Essayez 2:

#!/usr/local/bin/python2.5 

Résultat dans:

$ myscript.py inpt0 
: bad interpreter: No such file or directoryon2.5 

Quand je les lance directement dans le terminal, ils travaillent tous les deux très bien:

$ /usr/local/bin/python2.5 
Python 2.5.4 (r254:67916, Feb 9 2009, 12:50:32) 
[GCC 3.2.3 20030502 (Red Hat Linux 3.2.3-52)] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> 

$ /usr/bin/env python2.5 
Python 2.5.4 (r254:67916, Feb 9 2009, 12:50:32) 
[GCC 3.2.3 20030502 (Red Hat Linux 3.2.3-52)] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> 

Tous les conseils sur la façon de faire ce travail avec le tralala?

Répondre

56

J'ai eu des problèmes similaires et il s'est avéré être un problème avec les fins de ligne. Vous utilisez les terminaisons de ligne Windows/Linux/Mac?

Edit: oublié le nom du script, mais comme OP dit, il est dos2unix <filename>

+2

Ah Merci. Un peu dos2unix myscript.py a fait l'affaire! – Pe2

+0

heureux d'aider :) – kender

+1

Si votre fichier est UTF8, assurez-vous qu'il n'y a pas de [BOM] (https://en.wikipedia.org/wiki/Byte_order_mark) – RandomSeed

Questions connexes