Python comentário cabeçalho fonte
Pergunta
O que é a linha
#!/usr/bin/env python
na primeira linha de um script python utilizado?
Solução
No UNIX e Linux este diz que binário para uso como um intérprete (ver também Wiki página ).
Por exemplo shell script é interpretado por /bin/sh
.
#!/bin/sh
Agora, com python é um pouco complicado, porque você não pode assumir que o binário está instalado, nem que você deseja usar. Assim, o truque /usr/bin/env
. É de binário usar qualquer python é o primeiro na $PATH
. Você pode verificar que a execução which python
Com a linha intérprete você pode executar o script chmoding-lo para executável. E apenas executá-lo. Assim, com roteiro que começa com
#!/usr/bin/env python
estes dois métodos são equivalentes:
$ python script.py
e (assumindo que antes que você fez chmod +x script.py
)
$ ./script.py
Isso é útil para a criação de scripts todo o sistema.
cp yourCmd.py /usr/local/bin/yourCmd
chmod a+rx /usr/local/bin/yourCmd
E então você chamá-lo de qualquer lugar apenas com
yourCmd
Outras dicas
Isso é chamado de href="http://en.wikipedia.org/wiki/Shebang_(Unix)" rel="nofollow noreferrer"> shebang linha :
Em computação, um shebang (também chamado de hashbang, hashpling, ou libra bang) refere-se aos caracteres "#!" quando são os dois primeiros caracteres em um arquivo de texto. Unix-like sistemas operacionais tomar a presença desses dois personagens como uma indicação de que o arquivo é um script, e tentar executar esse script usando o interpretador especificado pelo resto da primeira linha no arquivo. Por exemplo, scripts shell para o shell Bourne começar com a primeira linha:
Em sistemas operacionais semelhantes UNIX e, esta linha diz que intérprete é para ser usado se o arquivo é executado.
Como Andri. No Windows, o arquivo executável para executar um arquivo com quando iniciado a partir da linha de comando depende de uma associação:
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" %*
Em Unix, o interpretador shell faz a inferência abrindo o arquivo e ver se existe um comando chamado no arquivo.
'/ usr / bin / python env' pesquisas $ caminho para python e executa-lo.
Normalmente env é usado para definir algumas variáveis ??de ambiente para um programa
O que essa linha faz é dizer ao computador o que fazer com esse arquivo, se você simplesmente tentar executar o arquivo sem especificar um intérprete .. mais detalhes
Apenas uma nota, esta linha é nada mais do que um comentário para o intérprete no Windows .