69 votes

Pourquoi "#! / Usr / bin / env python" est-il censé être plus correct que "#! / Usr / bin / python"?

Quelqu'un sait ça? Je n'ai jamais pu trouver de réponse.

66voto

Alex Martelli Points 330805

Si vous êtes enclin à l'installation de python de plusieurs lieux intéressant sur votre CHEMIN (en $PATH typique des shells Unix, %PATH sur Windows classique), à l'aide de /usr/bin/env accueillera votre coup de tête (enfin, dans les environnements Unix au moins) tout en allant directement à l' /usr/bin/python ne sera pas. Mais perdre le contrôle de ce que la version de Python de vos scripts d'exécution en vertu de l'est pas non allié l'affaire... si vous regardez mon code que vous avez plus de chances de le voir commencer avec, par exemple, #!/usr/local/bin/python2.5 plutôt que de l'ouvrir et d'accepter de l' #!/usr/bin/env python -- en supposant que le script est important, je tiens à assurer l'exécution, avec la version que j'ai testé et développé avec, PAS un semi-aléatoire;-).

25voto

S.Lott Points 207588

De wikipedia

Shebangs spécifient des chemins absolus vers les exécutables du système; cela peut entraîner des problèmes sur les systèmes dotés de dispositions de système de fichiers non standard

Le programme / usr / bin / env peut souvent être utilisé pour contourner cette limitation

10voto

Charles Ma Points 12330

il trouve l'exécutable python dans votre environnement et l'utilise. c'est plus portable parce que python peut ne pas toujours être dans / usr / bin / python. env est toujours situé dans / usr / bin.

5voto

Dirk Eddelbuettel Points 134700

Il trouve également 'python' dans / usr / local / bin, ~ / bin, / opt / bin, ... ou partout où il peut se cacher.

3voto

James Black Points 26183

Vous pouvez trouver ce post intéressant: http://mail.python.org/pipermail/python-list/2008-may/661514.html

Ceci peut être une meilleure explication: http://mail.python.org/pipermail/tutor/2007-June/054816.html

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