73 votes

En-tête du script Python

L'en-tête typique devrait être

#!/usr/bin/env python

Mais j'ai trouvé que ce qui suit fonctionne également lors de l'exécution du script comme $python ./my_script.py

#!/usr/bin/python
#!python

Quelle est la différence entre ces 2 en-têtes ? Quel pourrait être le problème pour le 2ème ? Veuillez également discuter du cas où l'interpréteur python est dans le PATH ou non. Merci.

0voto

Jatin Kumar Points 2347

Le /usr/bin/env python devient très utile lorsque vos scripts dépendent des paramètres de l'environnement, par exemple lors de l'utilisation de scripts qui reposent sur python virtualenv. Chaque virtualenv a sa propre version du binaire python qui est nécessaire pour ajouter les paquets installés dans le virtualenv au chemin python (sans toucher à l'environnement PYTHONPATH).

Comme de plus en plus de personnes ont commencé à utiliser virtualenv pour le développement python, il est préférable d'utiliser /usr/bin/env python sauf si vous ne voulez pas que les gens utilisent leur propre binaire python personnalisé.

Remarque : Vous devez également comprendre qu'il existe des problèmes de sécurité potentiels (dans les environnements multi-utilisateurs) lorsque vous laissez les gens exécuter vos scripts dans leurs environnements personnalisés. Vous pouvez obtenir des idées sur cette page.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X