Como usar o shebang do Python eficientemente?
Executando Scripts Python Com um Shebang
por Bartosz Zaczyński Mar 20, 2023 [boas-práticas](https://codemdd.io/tutoriaishttps://codemdd.io/boas- práticashttps://codemdd.io/) intermediário
Table of Contents
- O que é um Shebang e quando você deve usar?
- Como um Shebang funciona?
- Como definir um Shebang portátil?
- Quais são alguns exemplos de Shebang?
- Como usar um Shebang com um interpretador personalizado em Python?
- Quais são as melhores práticas para o Shebang?
- Conclusão
Quando você lê o código Python de outra pessoa, frequentemente vê uma linha misteriosa, que sempre aparece no topo do arquivo, começando com a sequência distintiva de shebang (#!
). Parece um comentário não tão útil, mas além disso, não se parece com mais nada que você aprendeu sobre Python, fazendo você se perguntar o que é aquilo e por que está lá. Como se isso não bastasse para te confundir, a linha de shebang só aparece em alguns módulos Python.
Neste tutorial, você vai:
- Aprender o que é um shebang
- Decidir quando incluir o shebang em scripts Python
- Definir o shebang de uma forma portátil em diferentes sistemas
- Passar argumentos para o comando definido em um shebang
- Conhecer as limitações do shebang e algumas alternativas
- Executar scripts através de um interpretador personalizado escrito em Python
O que é um Shebang e quando você deve usá-lo?
Python
Se você está usando um shebang, ele deve aparecer na primeira linha do seu script e deve começar com um sinal de hash (#
) seguido por um ponto de exclamação (!
), conhecido coloquialmente como “bang”, daí o nome shebang. A escolha do sinal de hash para iniciar essa sequência especial de caracteres não foi acidental, já que muitas linguagens de script o utilizam para comentários inline.
Você deve ter certeza de não colocar nenhum outro comentário antes da linha de shebang, se deseja que ela funcione corretamente, caso contrário, ela não será reconhecida! Após o ponto de exclamação, especifique um caminho absoluto para o interpretador de código relevante, como o Python. Especificar um caminho relativo não terá efeito, infelizmente.
Como um Shebang funciona?
Quando você executa um script com um shebang, o sistema operacional lê a ela e usa a informação contida nela para determinar qual interpretador de código usar para o restante do arquivo. Ele invoca o interpretador especificado pelo caminho do shebang e passa o arquivo de script como um parâmetro para o interpretador.
Por exemplo, se você executar o script Python de exemplo mencionado anteriormente em um sistema Linux, o sistema operacional lerá a linha de shebang #!https://codemdd.io/usrhttps://codemdd.io/binhttps://codemdd.io/python3
, invocará o interpretador Python em https://codemdd.io/usrhttps://codemdd.io/binhttps://codemdd.io/python3
e passará o caminho completo do arquivo de script como um argumento para o interpretador. O interpretador Python então leva o arquivo de script e o executa, produzindo a saída na tela se houver algum.
Como você pode definir um Shebang portátil?
Embora você possa especificar o caminho absoluto para um interpretador de código em um shebang, isso pode não ser portátil entre diferentes sistemas operacionais. O caminho absoluto para o interpretador pode variar de sistema para sistema, portanto, seu script pode não ser executado corretamente em todos os lugares onde você deseja entregá-lo ou executá-lo.
Para escrever um shebang portátil, você pode usar o programa env
disponível em sistemas Unix-like. O programa env
permite que você especifique o interpretador desejado por meio de uma variável de ambiente, como $PYTHON
, em vez de usar um caminho absoluto para o interpretador.
Veja um exemplo de shebang que usa o programa env
para torná-lo portátil:
Ao usar o env
, o sistema operacional procura o interpretador especificado pela variável de ambiente dentro do $PATH
(caminho de pesquisa) do sistema, onde são armazenados os executáveis. Com isso, você não precisa se preocupar com o caminho absoluto do interpretador, pois o sistema se encarregará de encontrá-lo para você.
Essa abordagem torna o script mais portátil entre diferentes sistemas operacionais. No entanto, você ainda precisa garantir que o interpretador esteja disponível no caminho de pesquisa nos sistemas em que você deseja executar o script.
Quais são alguns exemplos de Shebang?
Aqui estão alguns exemplos de shebang para diferentes interpretadores Python em sistemas Unix-like:
- Shebang para o Python 3:
- Shebang para o Python 2:
- Shebang para o Python em um ambiente virtual:
Lembrando que esses exemplos são apenas diretrizes gerais e você deve substituir o caminho pelo caminho correto para o seu interpretador Python específico.
Como você pode usar um Shebang com um interpretador personalizado em Python?
Além de usar o interpretador Python padrão fornecido pelo sistema operacional, você também pode criar seu próprio interpretador Python personalizado e usá-lo em um shebang.
Para fazer isso, siga estas etapas:
-
Crie um arquivo
my_python
em um editor de texto. -
Escreva as linhas de código Python para o seu interpretador personalizado no arquivo, como:
-
Salve o arquivo e feche-o.
-
No terminal, torne o arquivo
my_python
executável usando o comando:
- Agora você pode executar o script
my_python
diretamente a partir do terminal, como faria com qualquer outro script Python:
Quais são as melhores práticas para o Shebang?
Aqui estão algumas melhores práticas que você deve considerar ao usar um shebang em seus scripts Python:
-
Use um shebang apropriado para especificar o interpretador de código. Isso torna seu script independente do ambiente em que é executado.
-
Evite usar caminhos absolutos para o interpretador de código em um shebang, pois eles podem não ser portáteis entre diferentes sistemas operacionais. Em vez disso, use o programa
env
para tornar o shebang mais portátil. -
Certifique-se de que o interpretador especificado no shebang esteja disponível no sistema em que o script será executado.
-
Use a codificação UTF-8 para o arquivo de script, especificando a linha de codificação no início do arquivo:
- Mantenha a linha do shebang curta para facilitar a leitura e evitar problemas de formatação.
Conclusão
Agora você sabe o que é um shebang, como ele funciona e quando deve usá-lo em seus scripts Python. Você aprendeu como definir um shebang portátil, passar argumentos para o interpretador e usar um shebang com um interpretador personalizado. Além disso, você conheceu algumas melhores práticas para o uso de shebangs em seus scripts Python.
Usar um shebang adequado em seus scripts Python pode torná-los mais flexíveis e portáteis, facilitando a execução em diferentes ambientes. Então, da próxima vez que você ver uma linha de shebang em um script Python, você saberá exatamente o que significa e por que está lá.