web-dev-qa-db-fra.com

lancer un script python directement en ligne de commande

#!/usr/bin/env python

Je mets cela en haut d'un script. J'ai vu que cela devrait rendre le script exécutable à partir de la ligne de commande sans avoir besoin de python programname.py. À moins que je ne comprenne mal, je devrais pouvoir utiliser programname.py tant que la ligne ci-dessus se trouve en haut du script. Est-ce correct? 

Cela ne fonctionne pas pour moi. Je reçois juste une erreur indiquant que je devrais utiliser python au début de "l'appel".

9
confused

Exécution universelle des scripts Python

Vous pouvez pratiquement exécuter universellement sans Shebang (#!) avec

python myscript.py

Ou presque équivalent (il place le répertoire en cours sur votre chemin et exécute le module nommé myscript) (de préférence, faites ceci!) :

python -m myscript

à partir de la ligne de commande, tant que Python est installé et sur la variable d’environnement de votre chemin (c’est-à-dire qu’il doit être exécuté avec python, ce qui, s’il est installé, serait généralement le cas).

Shebangs (#!) sont un truc Unix.

Shebang, tel que vous l'utilisez, est généralement conçu pour fonctionner sur une plate-forme Unix (généralement Apple ou Linux). Windows aurait généralement besoin de cygwin pour utiliser Shebang.

Vous pouvez généralement utiliser par défaut le python disponible sur votre chemin système avec:

#!/usr/bin/env python

En supposant que vous soyez sous Unix, vous pouvez essayer d’autres emplacements pour votre configuration python, comme:

#!/usr/bin/python

Embrouillé

Vous pouvez voir quel python vous utilisez actuellement en utilisant la commande unix which, donc si vous voulez voir d'où vient votre python, utilisez cette commande:

which python

ou sous Windows (cygwin peut probablement exécuter le Shebang):

where python

Sous Linux/Unix, vous aurez également besoin de permanentes d'exécution pour exécuter le fichier. Utilisez chmod 

chmod +x myscript.py

(chmod peut également s'appliquer à Cygwin dans Windows)

Si vous n’exécutez pas en tant que root, vous aurez peut-être besoin de Sudo, ce qui serait 

Sudo chmod +x myscript.py

Et puis essayez de courir (dans le même répertoire) avec

./myscript.py 
23
Aaron Hall

rendre le fichier exécutable

Sudo chmod +x /path/to/file.py

et ensuite du même répertoire que file.py:

./file.py
6
jpwagner

Vous pouvez aussi utiliser webbrowser module de cette façon:

python -m webbrowser -t "http://www.python.org"
1
Andrew K