Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 23/04/2010, à 13:47

mansonboy

Problem pour excuser un script python

Bonjour, j'ai un problem avec python. Voulant m'y remettre je fait un script vraiment tout simple :

#!/usr/bin/python
#-*- coding: utf8 -*-

print 'bonjour'

Mais j'ai ceci comme retour d'erreur quand je veux l'exécuter :

 #!/usr/bin/python: Aucun fichier ou dossier de ce type
Warning: unknown mime-type for "bonjour" -- using "application/octet-stream"
Error: no such file "bonjour"

Pourquoi aucun fichier de ce type alors qui y est bien (j'ai verifier).

J'ai tenter également avec #!/usr/bin/python2.5 sa change rien...

Hors ligne

#2 Le 23/04/2010, à 13:57

bejazzy

Re : Problem pour excuser un script python

Bonjour,

Essaye

#!/usr/bin/env python

Ça devrait fonctionner.


Dell Inspiron 1525 - #!CrunchBang Linux 10 Statler Xfce --- #! FR

Hors ligne

#3 Le 23/04/2010, à 14:01

mansonboy

Re : Problem pour excuser un script python

Je te remercie! ça marche parfaitement bien . Mais une idée pour sa ne marchait pas?

Hors ligne

#4 Le 24/04/2010, à 11:58

bejazzy

Re : Problem pour excuser un script python

Je ne suis pas très sûr de moi, mais voici comme je le comprends:

Lorsqu'un script est rendu exécutable, le système essaie de l'exécuter en Shell, "environnement" par défaut de ton système. Pour demander à ton système d'exécuter le script en Python, on doit l'en avertir. C'est comme si le script était exécuter dans le mode Python interactif, d'où le '/usr/bin/env'.

L'erreur que tu avais n'est pas liée à une erreur Python mais à une erreur Shell qui ne comprend pas ce qu'est '#!/usr/bin/python'.

Je ne sais pas si j'ai été très très clair. Et n'oublie pas de changer le titre de ton fil et de mettre [Résolu].
Merci.


Dell Inspiron 1525 - #!CrunchBang Linux 10 Statler Xfce --- #! FR

Hors ligne

#5 Le 26/04/2010, à 13:01

brulouni

Re : Problem pour excuser un script python

Il n'y a aucun problème avec le

#!/usr/bin/python

Sauf si python n'est pas à cet endroit.

Le #! indique seulement avec quoi le script sera interprété.
La commande env sert à pointer sur python quelle que soit l'installation.


"Tout ce qui est simple est faux, tout ce qui est compliqué est inutile."
~ Paul Valery

Hors ligne

#6 Le 26/04/2010, à 13:33

yugo

Re : Problem pour excuser un script python

mais alors où se cache python?
Je suis curieux de connaître le résultat de

which python

Dans la vie il y a 3 sortes d'imbéciles: ceux qui doutent de tout et ceux qui doutent de rien

Hors ligne

#7 Le 26/04/2010, à 16:49

bejazzy

Re : Problem pour excuser un script python

Ok, autant pour moi. Je comprends mieux la différence maintenant. Merci.

Malgré tout, le script de mansonboy renvoie une erreur. La seule explication, c'est que le chemin /usr/bin/python soit erroné hors il a vérifié qu'il y était...

Second question à propos du /usr/bin/env, dans ce cas là, s'il y a plusieurs Python installés à des endroits différents, lequel prend-il, le premier exécutable 'python' du PATH? Ça doit être ça.


Dell Inspiron 1525 - #!CrunchBang Linux 10 Statler Xfce --- #! FR

Hors ligne

#8 Le 30/05/2014, à 12:50

totor08

Re : Problem pour excuser un script python

mansonboy a écrit :

Je te remercie! ça marche parfaitement bien . Mais une idée pour sa ne marchait pas?

bonjour !

j'ai fait un copier/coller du petit bout de code et j'ai eu exactement le même problème. J'ai comparé par rapport à mes scripts en python et je ne comprenais pas pourquoi ce script là ne marchait pas. En regardant le script en hexadécimal, j'ai pu voir que le fichier commençait par 3 caractères avant le # de la première ligne.
En effaçant la ligne et en la retapant, le script marche maintenant parfaitement.

Thierry

Dernière modification par totor08 (Le 30/05/2014, à 16:27)

Hors ligne

#9 Le 30/05/2014, à 19:23

pingouinux

Re : Problem pour excuser un script python

Bonjour,
D'accord avec totor08. Les 3 caractères en question sont ef bb bf. C'est ce qu'on appelle le BOM (Byte Order Mark), qui indique comment est encodé le fichier (ici, UTF-8).
Voir Byte Order Mark

Hors ligne

#10 Le 30/05/2014, à 20:07

moissan

Re : Problem pour excuser un script python

ça fait peur ces caractère invisible ...

avec quoi visualise tu le contenu hexadecimal entier ?

avec geany on peu lui demander d'afficher les caractere caché : tab space cr lf  ... mais pas vu les hexa bizares

Hors ligne

#11 Le 30/05/2014, à 20:47

pingouinux

Re : Problem pour excuser un script python

@moissan #10 :
Tu copies la 1ère ligne à la souris, puis

hd <<<'coller_la_ligne_ici'

Exemple

$ hd <<<'#!/usr/bin/python'
00000000  ef bb bf 23 21 2f 75 73  72 2f 62 69 6e 2f 70 79  |...#!/usr/bin/py|
00000010  74 68 6f 6e 0a                                    |thon.|
00000015

Pour voir un fichier

hd fichier

ou

hd <fichier

Hors ligne

#12 Le 30/05/2014, à 21:14

moissan

Re : Problem pour excuser un script python

merci ...une commande linux utile en plus ...

autre détail : le titre du sujet , ça ne serait pas plutôt exécuter que excuser ?

sur ce forum il est possible d’éditer ses ancien message y compris le titre

Hors ligne

#13 Le 30/05/2014, à 21:30

moissan

Re : Problem pour excuser un script python

vraiment bizare tout ça

denis@Compaq-Mini:~$ hd <<<'#!/usr/bin/python'
00000000  ef bb bf 23 21 2f 75 73  72 2f 62 69 6e 2f 70 79  |...#!/usr/bin/py|
00000010  74 68 6f 6e 0a                                    |thon.|
00000015
denis@Compaq-Mini:~$ hd <<<'#!/usr/bin/python'
00000000  23 21 2f 75 73 72 2f 62  69 6e 2f 70 79 74 68 6f  |#!/usr/bin/pytho|
00000010  6e 0a                                             |n.|

le premier est fait par copier coller du script montré au debut de ce sujet , et le 2eme est fait en tapant moi même les caractère visible

ça veut dire que ces caractère invisible sont invisible aussi dans le bbcode ????

Hors ligne

#14 Le 30/05/2014, à 22:02

moissan

Re : Problem pour excuser un script python

mansonboy a écrit :

Bonjour, j'ai un problem avec python. Voulant m'y remettre je fait un script vraiment tout simple :

#!/usr/bin/python
#-*- coding: utf8 -*-

print 'bonjour'

de plus en plus bizare  : quand une console a fait un hd de la premiere ligne du message du haut du sujet , elle met ces 3 caratere caché devant tout ce qu'on copie

si je copie un mot  ordinaire et fait un hd dans une autre console , il n'y a pas  de caractere caché dans la nouvelle console , mais il y en a avec hd dans la console contaminé

si je fait un hd de la premiere ligne sur la 2eme console , elle se met aussi a voir ces 3 lettre caché sur tous les collage

mais la citation du premier message ne fait pas cet effet  : il faut copier l'original au debut du sujet ...

aussi bizare ces 3 lettre caché sont aussi enregistré dans mousepad ou geany ....

Dernière modification par moissan (Le 31/05/2014, à 05:49)

Hors ligne

#15 Le 31/05/2014, à 10:32

moissan

Re : Problem pour excuser un script python

en demandant ef bb bf a google on a une reponse
https://fr.wikipedia.org/wiki/Indicateu … des_octets

conclusion ce BOM est en général ajouté par le bloc note windows : voila donc pourquoi il ne faut pas l'utiliser , et préférer notepad++ : je croyais que c'était pour une histoire de cr lf , mais ce BOM en debut de fichier est plus grave car il se met devant le # et bloque tout

les editeur linux ne rajoutent pas ce BOM mais le transmettent sans rien dire si il y est ... et le bloc note le transmet sans rien dire aussi

Hors ligne

#16 Le 31/05/2014, à 12:10

moissan

Re : Problem pour excuser un script python

l'editeur de texte geany a une case a cocher pour mettre un BOM

si la case n'est pas coché il suprime le BOM d'un fichier qui en a un

menu "document" "Ecrire le BOM Unicode"

Hors ligne