[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: bash et lancement script python



Salut,

On Sat, 23 Apr 2011 17:03:29 +0200, Alain Rpnpif wrote:
Bonjour,

Depuis toujours quand je mettais en première ligne d'un script python :
#!/usr/bin/python

Python était lancé sur le script.
Pourquoi maintenant (Debian Squeeze), la commande ./monscript.py donne :
line 1: #!/usr/bin/python: Aucun fichier ou dossier de ce type

$ sh ./monscript.py
./monscript.py: 1: #!/usr/bin/python: not found

$ bash ./monscript.py
./monscript.py: line 1: #!/usr/bin/python: Aucun fichier ou dossier
de ce type

$ which python
/usr/bin/python

python monscript.py marche. Je ne comprends pas.
Auriez-vous une explication ?

À tout hasard, est-ce que ton script aurait pu transiter par une machine Windows ou bien être transmis par mail ?

Dans ce cas, il est possible que les fins de ligne Unix (LF) aient été remplacés par des fins de ligne Windows (CR-LF). Si c'est le cas, la première ligne de ton script est vue comme
#!/usr/bin/python<CR>
et c'est donc "/usr/bin/python<CR>" qui est cherché au lieu de "/usr/bin/python".

Pour vérifier, affiche ton script avec un éditeur hexadécimal (ou tape "od -c -tx1 monscript.py" dans un terminal) et regarde si les "\n" sont précédés par des "\r".

Au pire, lance simplement un "dos2unix monscript.py" : si le soucis est bien là, ça le réglera (et quoi qu'il en soit, ça ne casse rien).

A+
Jean-Jacques


Reply to: