Exécutez des scripts Python sans invoquer explicitement `python`


40

J'utilise Debian Linux.

Je me demandais s'il y avait un moyen de configurer pour exécuter tous les scripts Python dans le terminal en tapant script.py(au lieu de python script.py).

Réponses:


58

Il y a deux choses que vous devez faire:

  • Assurez-vous que le fichier est exécutable: chmod +x script.py
  • Utilisez un shebang pour indiquer au noyau quel interpréteur utiliser. La première ligne du script doit se lire:

    #!/usr/bin/python
    

    Cela suppose que votre script s'exécutera avec le python par défaut. Si vous avez besoin d'une version spécifique, spécifiez simplement dans le shebang:

    #!/usr/bin/python2.7
    

Vous pouvez maintenant taper:

    ./script.py

si le script se trouve dans votre répertoire courant, ou:

    script.py

si l'emplacement du script se trouve dans votre CHEMIN, ou:

    path/to/script.py

autrement.


32
En général, c'est une meilleure idée à utiliser #!/usr/bin/env python, dans le cas où l'utilisateur a une version locale de python (par exemple, dans /usr/local/bin) avec laquelle il préfère exécuter le script.
sapi

3
@sapi Pas selon Debian, ce n'est pas le cas, du moins dans leurs politiques de développement. Si vous écrivez vos propres scripts, vous pouvez bien sûr accepter le risque, il vaut mieux être explicite. Si vous voulez le local, choisissez-le dans le shebang.
Paul

3
Ce n'est pas bashça qui lit le fichier lors de l'exécution ...
unperson325680

@progo C'est vrai - notez que si vous voyez une réponse qui, selon vous, bénéficierait d'une amélioration, allez-y et éditez-la, les améliorations sont toujours les bienvenues
Paul

Et vous devrez faire ./script.py, passcript.py
Paul Draper

33

Sous linux, vous pouvez simplement utiliser le hashbang (aka shebang). Ajoutez la ligne

#!/usr/bin/python

si vous souhaitez exécuter l'interpréteur python par défaut.

#!/path/to/python[x.x]

d'utiliser une version spécifique, ou

#!/usr/bin/env python

Si vous voulez que l'environnement trouve python pour vous.

Vous devrez également rendre le script exécutable

chmod +x script[.py] 

2

Utilisation:

#!/usr/bin/env python

Cela garantira que le python que l'utilisateur s'attend à utiliser sera celui qui exécutera le script. Ceci est particulièrement important si l'utilisateur utilise virtualenv pour avoir une version spécifique de python dans un environnement donné.


0

Utilisez une ligne de shebang en haut de votre script comme ci-dessous:

! / usr / bin / python

Mettez à jour la version python appropriée sur laquelle vous souhaitez exécuter le script. par exemple pour python 3.6 son

! /usr/bin/python3.6

pour l'interprète par défaut

! / usr / bin / python

Remarque: assurez-vous que le script dispose d'une autorisation exécutable.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.