Domanda

Qual è la linea

#!/usr/bin/env python

nella prima riga di uno script python utilizzato per?

È stato utile?

Soluzione

In UNIX e Linux Questo dice che binari da utilizzare come interprete (vedi anche pagina ). Ad esempio script è interpretato dal /bin/sh.

#!/bin/sh

Ora con Python è un po 'complicato, perché non si può assumere in cui è installato il file binario, né quali si desidera utilizzare. Così il trucco /usr/bin/env. E 'l'uso a seconda di quale pitone binario è primo nella $PATH. È possibile verificare che l'esecuzione which python

Con la linea interprete è possibile eseguire lo script chmoding a eseguibile. E proprio eseguirlo. Così, con lo script che inizia con

#!/usr/bin/env python

questi due metodi sono equivalenti:

$ python script.py

e (assumendo che in precedenza hai fatto chmod +x script.py)

$ ./script.py

Questo è utile per la creazione di script di larghezza di sistema.

cp yourCmd.py /usr/local/bin/yourCmd
chmod a+rx /usr/local/bin/yourCmd

E poi tu lo chiami da qualsiasi luogo solo con

yourCmd

Altri suggerimenti

Questo è chiamato un baracca riga:

  

In informatica, uno shebang (chiamato anche hashbang, hashpling, o libbre botto) si riferisce ai personaggi "#!" quando sono i primi due caratteri in un file di testo. i sistemi operativi Unix-like prendono la presenza di questi due personaggi come un'indicazione che il file è uno script, e cercano di eseguire tale script utilizzando l'interprete indicato dal resto della prima riga nel file. Per esempio, gli script di shell per la shell Bourne iniziano con la prima riga:

Sotto i sistemi operativi UNIX e simili, questa linea dice che interprete deve essere utilizzato, se viene eseguito il file.

Come ha detto Andri. In Windows, il file eseguibile per eseguire un file con cui ha lanciato dalla riga di comando si basa su un'associazione:

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" %*

In Unix, l'interprete di shell rende l'inferenza aprendo il file e vedere se v'è un comando chiamato nel file.

'/ usr / bin / env python' ricerche $ PATH per Python e lo esegue.

  

Di solito ENV è usato per impostare alcune variabili d'ambiente   per un programma

Quello che quella linea non fa altro che dire al computer cosa fare con quel file, se semplicemente tenta di eseguire il file senza specificare un interprete .. maggiori dettagli

Solo una nota, questa linea è niente di più di un commento all'interprete in Windows .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top