15.4.4. Manuseio de hashbangs em scripts Python


No Red Hat Enterprise Linux 8, espera-se que scripts Python executáveis usem hashbangs (shebangs) especificando explicitamente pelo menos a versão principal do Python.

O script /usr/lib/rpm/redhat/brp-mangle-shebangs buildroot policy (BRP) é executado automaticamente ao construir qualquer pacote RPM, e tenta corrigir hashbangs em todos os arquivos executáveis.

Nota

O script BRP gera erros ao encontrar um script Python com um hashbang ambíguo, como por exemplo:

#! /usr/bin/pithon
Copy to Clipboard Toggle word wrap

ou

#! /usr/bin/env python
Copy to Clipboard Toggle word wrap

15.4.4.1. Modificando hashbangs em scripts Python

Para modificar os hashbangs nos scripts Python que causam os erros de construção no tempo de construção RPM, use este procedimento.

Procedimento

  • Aplique o script pathfix.py do pacote platform-python-devel:

    # pathfix.py -pn -i %{__python3} PATH..
    Copy to Clipboard Toggle word wrap

    Note que múltiplos PATHs pode ser especificado. Se um PATH é um diretório, pathfix.py escaneia recursivamente qualquer script Python que corresponda ao padrão ^[a-zA-Z0-9_] \.py$, não apenas aqueles com um hashbang ambíguo. Adicione este comando à seção %prep ou ao final da seção %install.

Alternativamente, modifique os scripts Python empacotados para que eles estejam de acordo com o formato esperado. Para este fim, pathfix.py também pode ser usado fora do processo de construção RPM. Ao rodar pathfix.py fora de uma construção RPM, substitua __python3 do exemplo acima com um caminho para o hashbang, tal como /usr/bin/python3.

Se os scripts Python empacotados exigirem uma versão diferente da Python 3.6, ajuste os comandos acima para incluir a respectiva versão.

Voltar ao topo
Red Hat logoGithubredditYoutubeTwitter

Aprender

Experimente, compre e venda

Comunidades

Sobre a documentação da Red Hat

Ajudamos os usuários da Red Hat a inovar e atingir seus objetivos com nossos produtos e serviços com conteúdo em que podem confiar. Explore nossas atualizações recentes.

Tornando o open source mais inclusivo

A Red Hat está comprometida em substituir a linguagem problemática em nosso código, documentação e propriedades da web. Para mais detalhes veja o Blog da Red Hat.

Sobre a Red Hat

Fornecemos soluções robustas que facilitam o trabalho das empresas em plataformas e ambientes, desde o data center principal até a borda da rede.

Theme

© 2025 Red Hat