web-dev-qa-db-fra.com

Quelle est la différence entre ces deux python shebangs

J'utilisais le Shebang

#!/usr/bin/env python

Quand est-il préférable d'utiliser

#!/usr/bin/python

Quelle est la différence exacte entre eux?

59
Ken

#!/usr/bin/python est codé en dur pour toujours s'exécuter /usr/bin/python, tandis que #!/usr/bin/env python s'exécutera selon que python serait par défaut dans votre environnement actuel (il prendra en compte par exemple $PATH, vous pouvez vérifier quel python sera utilisé avec which python).

La deuxième façon (#!/usr/bin/env python) est préférable, car elle ne dépend pas d'une installation particulière. Cela fonctionnera par exemple avec virtualenv configurations ou systèmes où il n'y a pas /usr/bin/python, mais uniquement par exemple /usr/local/bin/python.

70
vartec