1008 votes

Où devrais-je le déposer ?

Dois-je l'inclus dans mes scripts python? Sous quelle forme?

#!/usr/bin/env python 

ou

#!/usr/local/bin/python

Je sais que le premier est plus portable, mais je veux savoir de quelle forme est le plus souvent utilisé.

Remarque: la tornade projet utilise le shebang. D'autre part, le Django le projet n'est pas.

1358voto

GlassGhost Points 1129

La ligne shebang en aucun script détermine le script de la capacité d'être exécuté comme un exécutable autonome sans avoir à taper python auparavant dans le terminal ou en double-cliquant dessus dans un gestionnaire de fichiers(lorsqu'il est configuré correctement). Il n'est pas nécessaire, mais en règle générale, il y a donc quand quelqu'un voit le fichier est ouvert dans un éditeur, ils ont immédiatement savoir ce qu'ils regardent. Toutefois, ligne shebang vous utilisez ESTimportant; Correct d'usage:

#!/usr/bin/env python

#!/usr/bin/env python En général par défaut de python 2.7.plus tard, et #!/usr/bin/env python3 valeur par défaut est 3.plus tard .

Ne Pas Utiliser:

#!/usr/local/bin/python

"python peut être installé dans /usr/bin/python ou /bin/python dans ces cas, le numéro ci-dessus! va échouer."

--"#!/usr/bin/env python" vs "#!/usr/local/bin/python"

76voto

Amber Points 159296

C'est vraiment juste une question de goût. Ajouter le shebang signifie que les gens peuvent appeler le script directement si ils veulent (en supposant que c'est marqué comme exécutable); omission cela signifie juste python doit être lancé manuellement.

Le résultat final de l'exécution du programme n'est pas affectée de toute façon, c'est juste les options de moyens.

21voto

Chris Johnson Points 2887

Si vous avez plus d'une version de Python et le script doit être exécuté en vertu d'une version spécifique, elle-bang peut assurer le droit est utilisé lorsque le script est exécuté directement, par exemple:

#!/usr/bin/python2.7

Remarque le script pourrait encore être exécutées via une complète Python en ligne de commande, ou via l'importation, auquel cas la elle-bang est ignoré. Mais pour les scripts que vous exécutez directement, c'est un bon motif pour utiliser le she-bang.

#!/usr/bin/env python est généralement la meilleure approche, mais cela aide à des cas particuliers.

13voto

Lennart Regebro Points 52510

Vous devez ajouter un shebang si le script est destiné à être exécutable. Vous devez également installer le script avec une installation d'un logiciel qui modifie le shebang à quelque chose de correct afin qu'il fonctionne sur la plate-forme cible. Des exemples de ce qui est distutils et de les Distribuer.

12voto

meson10 Points 711

Le but de l'algorithme Sha-bang est pour le script de reconnaître l'interprète de type lorsque vous voulez exécuter le script à partir de la Coquille. Pour la plupart, et pas toujours, vous exécutez des scripts en fournissant l'interprète de l'extérieur. Exemple d'utilisation: python-x.x script.py Cela fonctionne même si vous n'avez pas de Sha-sac de demande de déclaration.

Pourquoi le premier est plus "portable" c'est parce que, /nous/bin/env contient votre CHEMIN de déclaration des comptes pour toutes les destinations où votre système de fichiers exécutables de résident.

REMARQUE: une Tornade n'est pas strictement l'utilisation de Sha-bang, et Django Strictement ne l'est pas. Il varie avec la façon dont vous exécutez votre application principale.

AUSSI: Il ne varie pas avec le Langage Python.

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