2017-06-02 1 views
-1

J'ai un problème de ligne de commentaire en python. J'ai créé un ages.py avec vim et voici mon scriptPython n'autorise pas de commentaire supplémentaire avec env python

#!/usr/bin/env python 
ages={"dad":42, "mom":35, "lisa":7} 
for item in ages: 
     print item 

Quand j'ajoute un commentaire au-dessus du !/usr/bin, comme

# this is a python script 
#!/usr/bin/env python 
ages={"dad":42, "mom":35, "lisa":7} 
for item in ages: 
     print item 

et après je retourne dans le répertoire, qui comprend le même script, et exécutez le script avec l'écriture à la borne ages.py mais je reçois cette erreur

$ ./ages.py 
./ages.py: line 3: mom:35,: command not found 
./ages.py: line 5: syntax error near unexpected token `print' 
./ages.py: line 5: 'print item' 

Je sais que lorsque je retire la ligne #!/usr/bin/env python# fonctionne parfaitement pour commenter. Cependant, je voudrais ajouter cette ligne pour exécuter le script en n'écrivant que son nom à l'invite. Sinon, je dois écrire python ages.py à chaque fois pour l'exécuter, ce que je vois comme un fardeau.

1er Q: '#!/Usr/bin/env python' Comment puis-je commenter au scénario .py d'avoir encore la ligne

PS: Je l'ai déjà essayé """''' avant et après la ligne de commentaire , ça ne marche pas non plus.

2ème Q: Existe-t-il un moyen d'exécuter un script .py dans un environnement python? Par exemple, je peux exécuter le fichier .m en octave en écrivant simplement son nom en ligne de commande. Mais je ne pouvais pas comprendre s'il y a une même manière en python? P.S: Je sais que les questions sont si faciles et méritent -1, cependant, pour les nouveaux utilisateurs de python, toutes les réponses fourniront d'excellentes informations, merci pour tous. C'est une solution tellement subtile mais sans elle, j'ai constamment les erreurs

+5

Il suffit de mettre vos commentaires ** ** après le '#!/Usr/bin/ligne python' env – MSeifert

+0

Merci, solution simple, il fonctionne parfaitement –

+2

FWIW, ces erreurs se produire parce que sans tralala approprié que le 1er line votre shell suppose que le script est un script shell simple, donc il essaie de l'interpréter comme un script sh ou bash. –

Répondre

2
  1. la ligne contenant #!/usr/bin/env pythondoit être d'abord, vous pouvez ajouter vos commentaires ci-dessous;

  2. Oui, vous pouvez le faire comme ceci: exec(open('yourscript.py').read()) - Cependant, les résultats peuvent parfois différer de vos attentes.

3

Cette première ligne est très importante. C'est ce qu'on appelle le Hashbang et parfois connu sous le nom de Shebang. Il indique au système d'exploitation quel interpréteur utiliser pour exécuter le script. Lorsque le shebang est utilisé, il doit être la première ligne. D'autres variantes incluent

#!/bin/sh 
#!/usr/bin/perl/ 
#!/usr/bin/python 

Ce sont pour les valeurs par défaut du système sh, perl et python. Tout autre commentaire dans votre code doit être après cette ligne.