tête source Python commentaire
Question
Quelle est la ligne
#!/usr/bin/env python
dans la première ligne d'un script python utilisé?
La solution
ce qui indique binaire à utiliser dans UNIX et Linux comme un interprète (voir aussi ).
Par exemple script shell est interprété par /bin/sh
.
#!/bin/sh
Maintenant, avec python il est un peu difficile, parce que vous ne pouvez pas supposer où le binaire est installé, ni que vous souhaitez utiliser. Ainsi, le tour du /usr/bin/env
. Il est utilisé selon binaire python est d'abord dans le $PATH
. Vous pouvez vérifier que l'exécution which python
Avec la ligne d'interprète, vous pouvez exécuter le script par chmodage à l'exécutable. Et l'exécuter. Ainsi avec le script commençant par
#!/usr/bin/env python
ces deux méthodes sont équivalentes:
$ python script.py
et (en supposant que plus tôt vous avez fait chmod +x script.py
)
$ ./script.py
Ceci est utile pour la création de scripts larges du système.
cp yourCmd.py /usr/local/bin/yourCmd
chmod a+rx /usr/local/bin/yourCmd
Et vous appelez partout seulement avec
yourCmd
Autres conseils
Ceci est appelé tralala ligne:
En informatique, un tralala (également appelé Hashbang, hashpling ou livre bang) fait référence aux caractères « #! » quand ils sont les deux premiers caractères dans un fichier texte. les systèmes d'exploitation Unix prennent la présence de ces deux caractères comme une indication que le fichier est un script, et essayez d'exécuter ce script en utilisant l'interpréteur spécifié par le reste de la première ligne dans le fichier. Par exemple, les scripts shell pour le shell Bourne commence par la première ligne:
Sous UNIX et systèmes d'exploitation similaires, cette ligne indique que l'interprète doit être utilisé si le fichier est exécuté.
Comme dit ANDRI. Sous Windows, le fichier exécutable pour exécuter un fichier avec quand lancé à partir de la ligne de commande repose sur une association:
16:12:40.68 C:\>assoc .py
.py=Python.File
16:13:53.45 C:\>assoc Python.File
Python.File=Python File
16:14:01.70 C:\>ftype Python.File
Python.File="C:\Python30\python.exe" "%1" %*
Dans Unix, l'interpréteur de commandes fait l'inférence en ouvrant le fichier et voir s'il y a une commande nommée dans le fichier.
'/ usr / bin / env python' recherches PATH $ pour python et l'exécute.
En général, env est utilisée pour définir des variables d'environnement pour un programme
Qu'est-ce que cette ligne n'est de dire votre ordinateur quoi faire avec ce fichier, si vous essayez simplement d'exécuter le fichier sans spécifier un interprète .. plus en détail
Juste une note, cette ligne est rien de plus un commentaire à l'interprète dans Windows .