O que eu uso no linux para tornar um programa Python executável

87

Acabei de instalar um sistema Linux (Kubuntu) e queria saber se existe um programa para fazer programas Python executáveis ​​para Linux.

rmtheis
fonte
Já respondi aqui http: //stackoverflow.com/questions/193077 / ...
Andrew Beyer
2
Não, não está respondido lá. Essa pergunta questiona sobre problemas de distribuição.
tzot de
Não, não é um idiota. Essa questão está relacionada à distribuição de software python evitando problemas de compatibilidade e disponibilidade de biblioteca.
tzot de

Respostas:

155

Basta colocar isso na primeira linha do seu script:

#!/usr/bin/env python

Torne o arquivo executável com

chmod +x myfile.py

Executar com

./myfile.py
Vincent Van Den Berghe
fonte
6
Estou confuso. Como o "#! / Usr / bin / env python" funciona quando o hash deve torná-lo uma linha comentada? Tentei executar o script sem a linha hash, mas não funcionou. Obviamente, a linha é necessária, mas como funciona se for um comentário?
Nav
5
Se você estiver enviando scripts para outro programador, tudo bem. Mas essa não é uma maneira adequada de distribuir programas Python para usuários finais. E se o usuário não tiver o Python instalado? E se eles tiverem, mas for uma versão diferente daquela em que você escreveu o programa? No geral, isso só funcionará para uma pequena porcentagem de usuários, especialmente no Windows.
Jonathan Hartley de
4
@MathManiac Se você continuar como está sugerindo, cerca de 15% dos usuários não conseguirão executar seu aplicativo. Isso será uma carga de suporte paralisante, para não mencionar uma experiência do usuário fantasticamente hostil, que irá gerar uma torrente de postagens odiosas de "aplicativo que X é uma merda". Eu mantenho minha afirmação de que esta não é uma maneira adequada de distribuir aplicativos aos usuários finais.
Jonathan Hartley,
2
@PrahladYeri use # / usr / bin / env python3
kingledion
3
@Nav Isso se chama Shebang . Está comentado porque não deve ser interpretado por python. Fornece informações ao sistema operacional. Mais especificamente, ele diz qual programa deve ser usado para executar o script.
MannyC
16

Se você deseja obter um aplicativo binário autônomo em Python, tente usar uma ferramenta como o py2exe ou o PyInstaller .

Mihai8
fonte
palavra-chave: autônomo
D Adams
Posso descompilar a saída do PyInstaller?
SuB de
13

Você pode usar o PyInstaller. Ele gera um build dist para que você possa executá-lo como um único arquivo "binário".

http://pythonhosted.org/PyInstaller/#using-pyinstaller

Python 3 tem a opção nativa de criar um build dist também:

https://docs.python.org/3/distutils/builtdist.html

Leo Pepe
fonte
a questão não é fazer scripts python .exe / elf arquivos
warvariuc
8
Desculpe, mas parece que a questão é essa! "queria saber se existe um programa para tornar executáveis ​​programas python para Linux."
Leo Pepe
4

Colocar essas linhas no início do código fará com que seus sistemas operacionais procurem o programa binário necessário para a execução do script python, ou seja, é o interpretador python.

Portanto, depende do seu sistema operacional onde mantém o interpretador python. Como eu tenho o Ubuntu como sistema operacional, ele mantém o interpretador python, /usr/bin/pythonentão eu tenho que escrever esta linha no início do meu script python;

#!/usr/bin/python

Depois de preencher e salvar seu código

  1. Inicie seu terminal de comando

  2. Certifique-se de que o script está no seu diretório de trabalho atual

  3. Tipo chmod +x script_name.py

  4. Agora você pode iniciar o script clicando nele. Uma caixa de alerta aparecerá; pressione "Executar" ou "Executar no Terminal" na caixa de alerta; ou, no prompt do terminal, digite./script_name.py

Mohit Dabas
fonte
4

Se alguém deseja tornar executável hello.py

primeiro encontre o caminho onde python está em seu sistema operacional com: which python

geralmente reside na pasta "/ usr / bin / python".

na primeira linha de hello.pyum deve adicionar:#!/usr/bin/python

então através do comando linux chmod

deve-se apenas torná-lo executável como: chmod +x hello.py

e executar com ./hello.py

Nilesh K.
fonte
1

Eu faço o seguinte:

  1. colocar #! / usr / bin / env python3 no topo do script
  2. chmod u + x arquivo.py
  3. Altere .py para .command no nome do arquivo

Isso basicamente transforma o arquivo em um executável bash. Quando você clicar duas vezes nele, ele deve ser executado. Isso funciona em sistemas baseados em Unix.

dan_the_ham-man
fonte
0

Outra maneira de fazer isso é criando um alias. Por exemplo, em gravação de terminal:

alias printhello='python /home/hello_world.py'

A escrita printhelloirá executar hello_world.py, mas isso é apenas temporário. Para tornar os aliases permanentes, você deve adicioná-los ao bashrc, você pode editá-lo escrevendo no terminal:

gedit ~/.bashrc
Coco
fonte