sexta-feira, 24 de dezembro de 2010
Qual a diferença entre #!/usr/bin/python e #!/usr/bin/env python?
Postado por
Luiz Augusto
às
14:56
Para quem utiliza o Linux como SO e programa em Python, já deve estar familiarizado em colocar um comentário com um caminho para o interpretador.
Este comentário especial na primeira linha faz com que o computador saiba onde está o interpretador da linguagem Python.
Mas, se você já prestou atenção, alguns programadores utilizam #!/usr/bin/python e outros #!/usr/bin/env python. Qual dos dois está certo? E qual a diferença entre eles? Eu também já fiz estas perguntas.
No primeiro caso, quando utilizamos #!/usr/bin/python, estamos especificando a localização do interpretador Python em sua máquina. O caminho está dizendo que o interpretador Python está dentro da pasta /usr/bin, que é onde geralmente ele está.
Mas, imagine se você fosse executar seu script em uma máquina que o interpretador estivesse instalado em /bin? O seu script simplesmente não iria funcionar, pois o caminho para o interpretador é diferente. O comando env resolve este problema.
Quando utilizamos #!/usr/bin/env python, estamos invocando o comando env, que procura o caminho do comando passado como argumento (i. e. python) nas variáveis de ambiente para poder executá-lo. Ou seja, se o interpretador estiver em /usr/local/bin, /bin/, /usr/bin ou em qualquer outro caminho, o comando env irá encontrá-lo e executá-lo, não importa onde ele esteja.
Portanto, quando for criar scripts em Python no Linux, escolha sempre a segunda opção para não ter dores de cabeça posteriormente.
Tags:
Curiosidades,
Dicas,
Python
