Page 1 sur 1

[RESOLU] - shebang - Python3

Posté : mar. 18 août 2015 08:57
par phdenaujan
Bonjour à tous,

J'ai un problème pour lancer un script avec la commande

Code : Tout sélectionner

./monscript.py
Le shebang est :

Code : Tout sélectionner

#! /usr/bin/python3
# -*- coding: utf8 -*-
#Je ne veux pas me lancer
La réponse que je reçois en retour est :
-bash: ./monscript.py : /usr/bin/python3^M : mauvais interpréteur: Aucun fichier ou dossier de ce type
J'ai vérifié la position de python3 avec "which python3" et la réponse est bien "/usr/bin/python3"

En plus de comprendre, la finalité est de le lancer automatiquement depuis /etc/rc.local afin de supprimer le skeleton (qui ne fonctionne plus d'ailleurs).

Bonne journée,

Re: shebang - Python3

Posté : mar. 18 août 2015 11:46
par destroyedlolo
Salut,

Ton problème est la
/usr/bin/python3^M
Tu as due éditer ton texte depuis m$-windows : dans ce cas, il faut que tu sauvegardes en mode Unix sinon il rajoute des CTRL-M en fin de ligne.

Voila :D

Re: shebang - Python3

Posté : mar. 18 août 2015 12:03
par phdenaujan
Merci pour ta réponse. Je ne comprenais pas ce que "^M" faisait là. J'essaye ça dans les minutes qui suivent.

Re: shebang - Python3

Posté : mar. 18 août 2015 12:55
par phdenaujan
Edité depuis IDLE directement sur le RPI, marche pas, même erreur.

Le programme se lance lorsque je supprime le !. La ligne devient donc

Code : Tout sélectionner

# /usr/bin/python3
Par contre en réponse j'ai une tripotée d'erreur du type
ligne10: import : commande introuvable
.
Pour info, mon script est dans /home/pi. Le déplacer dans /opt ou /usr/bin a donné le même résultat.

Re: shebang - Python3

Posté : mar. 18 août 2015 16:48
par destroyedlolo
phdenaujan a écrit :Edité depuis IDLE directement sur le RPI, marche pas, même erreur.
Peux-tu faire une copie d'écran ? S'il crie après un ^M ... c'est qu'il reste un retour chario à la fin de la ligne (je crois qu'il existe un programme nommé Dos2Unix ou qq chose du genre qui fait ce genre de conversions).
phdenaujan a écrit :Le programme se lance lorsque je supprime le !. La ligne devient donc

Code : Tout sélectionner

# /usr/bin/python3
Par contre en réponse j'ai une tripotée d'erreur du type
ligne10: import : commande introuvable
.
Heu, oui, là c'est normal :
  • le #! indique au shell que tu veux changer d'interpréteur, en l'occurence vers python
  • avec #, tu reste dans le shell, le # seul indique que la ligne est un commentaire
phdenaujan a écrit :Pour info, mon script est dans /home/pi. Le déplacer dans /opt ou /usr/bin a donné le même résultat.
Normal aussi, ce n'est pas un pb de path mais simplement que /usr/bin/python3^M n'existe pas.

Re: shebang - Python3

Posté : mar. 18 août 2015 18:41
par phdenaujan
Heu, oui, là c'est normal :
Effectivement, sans # !!!...

Puisque toujours le fameux "^M" j'ai fais un simple copier/coller de tout le script (hors première ligne), réécris la première et, trop cool, ça marche...
Merci pour ton aide Destroyedlolo.

Re: [RESOLU] - shebang - Python3

Posté : mar. 18 août 2015 20:51
par destroyedlolo
welcome :D