#!/usr/bin/env python3Complément - niveau avancé¶
Ce complément est uniquement valable pour macOS et Linux.
Le besoin¶
Nous avons vu dans la vidéo que, pour lancer un programme Python, on fait depuis le terminal :
$ python3 mon_module.pyLorsqu’il s’agit d’un programme que l’on utilise fréquemment, on n’est pas forcément dans le répertoire où se trouve le programme Python. Aussi, dans ce cas, on peut utiliser un chemin “absolu”, c’est-à-dire à partir de la racine des noms de fichiers, comme par exemple :
$ python3 /le/chemin/jusqu/a/mon_module.pySauf que c’est assez malcommode, et cela devient vite pénible à la longue.
La solution¶
Sur Linux et macOS, il existe une astuce utile pour simplifier cela. Voyons comment s’y prendre, avec par exemple le programme fibonacci.py que vous pouvez télécharger ici (nous avons vu ce code en détail dans les deux compléments précédents). Commencez par sauver ce code sur votre ordinateur dans un fichier qui s’appelle, bien entendu, fibonacci.py.
On commence par éditer le tout début du fichier pour lui ajouter une première ligne :
#!/usr/bin/env python3
## La suite de Fibonacci (Suite)
...etc...Cette première ligne s’appelle un Shebang dans le jargon Unix. Unix stipule que le Shebang doit être en première position dans le fichier.
Ensuite on rajoute au fichier, depuis le terminal, le caractère exécutable comme ceci :
$ pwd
/le/chemin/jusqu/a/$ chmod +x fibonacci.pyÀ partir de là, vous pouvez utiliser le fichier fibonacci.py comme une commande, sans avoir à mentionner python3, qui sera invoqué au travers du shebang :
$ /le/chemin/jusqu/a/fibonacci.py 20
fibonacci(20) = 6765Et donc vous pouvez aussi le déplacer dans un répertoire qui est dans votre variable PATH; de cette façon vous les rendez ainsi accessible à partir de n’importe quel répertoire en faisant simplement :
$ export PATH=/le/chemin/jusqu/a:$PATH$ cd /tmp
$ fibonacci.py 20
fibonacci(20) = 6765Remarque : tout ceci fonctionne très bien tant que votre point d’entrée - ici fibonacci.py - n’utilise que des modules standards. Dans le cas où le point d’entrée vient avec au moins un module, il est également nécessaire d’installer ces modules quelque part, et d’indiquer au point d’entrée comment les trouver, nous y reviendrons dans la semaine où nous parlerons des modules.