web-dev-qa-db-fra.com

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

J'utilise Debian Linux.

Je me demandais s’il existait un moyen de configurer l’exécution de scripts all Python dans le terminal en saisissant script.py (au lieu de python script.py).

31
user2018084

Il y a deux choses à faire:

  • Assurez-vous que le fichier est exécutable: chmod +x script.py
  • Utilisez un Shebang pour que le noyau sache quel interpréteur utiliser. La première ligne du script devrait se lire comme suit:

    #!/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
    

Maintenant vous pouvez taper:

    ./script.py

si le script est dans votre répertoire actuel, ou:

    script.py

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

    path/to/script.py

autrement.

52
Paul

Sous Linux, vous pouvez simplement utiliser le hashbang (alias Shebang). Ajouter la ligne

#!/usr/bin/python

si vous voulez 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] 
31
Gaurav Joseph

Utilisation:

#!/usr/bin/env python

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

1
Cory Klein

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

!/usr/bin/python

Mettez à jour la version python appropriée sur laquelle vous voulez exécuter le script. par exemple. Pour Python 3.6, sa

! /usr/bin/python3.6

pour interprète par défaut

!/usr/bin/python

Remarque: Assurez-vous que le script dispose d'une autorisation d'exécution.

0
Suraj Bora