Se python é multi plataforma porque e tão dificil de criar um EXE pra rodar no windows apartir do py

2,033 views
Skip to first unread message

Italo Rodrigo Curioso em Python

unread,
Sep 7, 2012, 4:14:43 PM9/7/12
to pug...@googlegroups.com
Cara faz temo que rodo pra gera um exe apartir do py e  não to conseguindo. lembrando que eu uso o ubuntu

Guilherme

unread,
Sep 7, 2012, 4:31:06 PM9/7/12
to pug...@googlegroups.com
Bom... pode at� conseguir gerar o .exe... A bronca � que n�o vai rodar
no ubuntu. =P

.exe � nativo da plataforma windows... se quiser rodar .exe no ubuntu
vai ter que utilizar o wine. Neste caso, ficaria bem estranho ter um
compilado python rodando no wine.

Sinceridade, n�o sei qual o objetivo de ter um programa 'compilado'...
uma vez que se tem o interpretador python para todas as plataformas.

Seria para distribuir c�digo fechado? (flame).

Guilherme.

On 07-09-2012 17:14, Italo Rodrigo Curioso em Python wrote:
> Cara faz temo que rodo pra gera um exe apartir do py e n�o to
> conseguindo. lembrando que eu uso o ubuntu
> --
> Voc� est� recebendo esta mensagem porque se inscreveu no grupo
> "pug-pe" dos Grupos do Google.
> Para postar neste grupo, envie um e-mail para pug...@googlegroups.com.
> Para cancelar a inscri��o nesse grupo, envie um e-mail para
> pug-pe+un...@googlegroups.com.
> Para ver esta discuss�o na web, acesse
> https://groups.google.com/d/msg/pug-pe/-/zPQHUBCkDQEJ.
> Para obter mais op��es, acesse https://groups.google.com/groups/opt_out.
>
>

Hugo Salvador

unread,
Sep 7, 2012, 4:50:43 PM9/7/12
to pug...@googlegroups.com

Você pode compilar para pyc. A questão da multi plataforma é exatamente poder rodar o py ou pyc em qualquer plataforma que tenha um python instalado (windows, linux, mac, android, ios...).

Em 07/09/2012 17:31, "Guilherme" <gam...@gmail.com> escreveu:
Bom... pode até conseguir gerar o .exe... A bronca é que não vai rodar no ubuntu. =P

.exe é nativo da plataforma windows... se quiser rodar .exe no ubuntu vai ter que utilizar o wine. Neste caso, ficaria bem estranho ter um compilado python rodando no wine.

Sinceridade, não sei qual o objetivo de ter um programa 'compilado'... uma vez que se tem o interpretador python para todas as plataformas.

Seria para distribuir código fechado? (flame).


Guilherme.

On 07-09-2012 17:14, Italo Rodrigo Curioso em Python wrote:
Cara faz temo que rodo pra gera um exe apartir do py e  não to conseguindo. lembrando que eu uso o ubuntu
--
Você está recebendo esta mensagem porque se inscreveu no grupo "pug-pe" dos Grupos do Google.

Para postar neste grupo, envie um e-mail para pug...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para pug-pe+unsubscribe@googlegroups.com.
Para ver esta discussão na web, acesse https://groups.google.com/d/msg/pug-pe/-/zPQHUBCkDQEJ.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.



--
Você está recebendo esta mensagem porque se inscreveu no grupo "pug-pe" dos Grupos do Google.

Para postar neste grupo, envie um e-mail para pug...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para pug-pe+unsubscribe@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.


Italo Rodrigo Curioso em Python

unread,
Sep 7, 2012, 4:50:44 PM9/7/12
to pug...@googlegroups.com
guilherme quero criar um exe pra rodar o programinha no pc da empresa que trabalho

João Santana

unread,
Sep 7, 2012, 5:26:47 PM9/7/12
to pug...@googlegroups.com, Italo Rodrigo Curioso em Python
Em 07-09-2012 17:14, Italo Rodrigo Curioso em Python escreveu:
> Cara faz temo que rodo pra gera um exe apartir do py e n�o to
> conseguindo. lembrando que eu uso o ubuntu
> --
> Voc� est� recebendo esta mensagem porque se inscreveu no grupo
> "pug-pe" dos Grupos do Google.
> Para postar neste grupo, envie um e-mail para pug...@googlegroups.com.
> Para cancelar a inscri��o nesse grupo, envie um e-mail para
> pug-pe+un...@googlegroups.com.
> Para ver esta discuss�o na web, acesse
> https://groups.google.com/d/msg/pug-pe/-/zPQHUBCkDQEJ.
> Para obter mais op��es, acesse https://groups.google.com/groups/opt_out.
>
>
Ser multiplataforma n�o significa que ele tenha que gerar bin�rios para
toda e qualquer plataforma suportada. Significa que o interpretador
funciona em diversas plataformas diferentes entre si. O que tamb�m n�o
significa que, de uma plataforma para outra, modifica��es
precisem/tenham que ser feitas.

Para o seu caso em espec�fico, eu aconselharia o tutorial do py2exe [1]
que, inclusive, foi o que eu usei para entender o pacote e us�-lo para
gerar bin�rios para o Windows. A partir do Ubuntu. Veja se isso te ajuda
e, qualquer coisa, tamos aqui. ;^)

[1] http://www.py2exe.org/index.cgi/Tutorial

--
Atenciosamente,

Jo�o Santana

Luciano Rodrigues da Silva

unread,
Sep 7, 2012, 9:42:57 PM9/7/12
to pug...@googlegroups.com
Ser multiplataforma significa que o arquivo .py vai rodar no interpretador daquela plataforma, desde que exista um. Python é interpretada, então não quer dizer que vc vai conseguir criar um arquivo binário a partir do Python. Inclusive, as ferramentas que são usadas para "gerar" um .exe na verdade só fazem um arrumadinho colocando seu arquivo .py junto do interpretador Python de uma vez, ou seja, não é uma compilação de verdade.

A solução do seu problema é o Py2exe como falou o João Santana. Vc tbm pode tentar o pyInstaller http://www.pyinstaller.org/ que dizem que gera binários tbm para Linux.

P.S.: Talvez no futuro haja uma forma de criar um binário de verdade a partir do Pypy, mas que eu saiba até agora não apareceu nada do tipo.

2012/9/7 João Santana <joao.abo...@gmail.com>
Em 07-09-2012 17:14, Italo Rodrigo Curioso em Python escreveu:
> Cara faz temo que rodo pra gera um exe apartir do py e  não to

> conseguindo. lembrando que eu uso o ubuntu
> --
> Você está recebendo esta mensagem porque se inscreveu no grupo

> "pug-pe" dos Grupos do Google.
> Para postar neste grupo, envie um e-mail para pug...@googlegroups.com.
> Para cancelar a inscrição nesse grupo, envie um e-mail para
> pug-pe+un...@googlegroups.com.
> Para ver esta discussão na web, acesse
> https://groups.google.com/d/msg/pug-pe/-/zPQHUBCkDQEJ.
> Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
>
>
Ser multiplataforma não significa que ele tenha que gerar binários para

toda e qualquer plataforma suportada. Significa que o interpretador
funciona em diversas plataformas diferentes entre si. O que também não
significa que, de uma plataforma para outra, modificações
precisem/tenham que ser feitas.

Para o seu caso em específico, eu aconselharia o tutorial do py2exe [1]
que, inclusive, foi o que eu usei para entender o pacote e usá-lo para
gerar binários para o Windows. A partir do Ubuntu. Veja se isso te ajuda

e, qualquer coisa, tamos aqui. ;^)

[1] http://www.py2exe.org/index.cgi/Tutorial

--
Atenciosamente,

João Santana

--
Você está recebendo esta mensagem porque se inscreveu no grupo "pug-pe" dos Grupos do Google.

Para postar neste grupo, envie um e-mail para pug...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para pug-pe+un...@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.





--
Até,

Luciano

<quote>
"Na prática, a teoria é outra!"
</quote>

:wq!

João Santana

unread,
Sep 7, 2012, 11:33:18 PM9/7/12
to pug...@googlegroups.com
Em 7 de setembro de 2012 22:42, Luciano Rodrigues da Silva <lucro...@gmail.com> escreveu:
Ser multiplataforma significa que o arquivo .py vai rodar no interpretador daquela plataforma, desde que exista um. Python é interpretada, então não quer dizer que vc vai conseguir criar um arquivo binário a partir do Python. Inclusive, as ferramentas que são usadas para "gerar" um .exe na verdade só fazem um arrumadinho colocando seu arquivo .py junto do interpretador Python de uma vez, ou seja, não é uma compilação de verdade.

A solução do seu problema é o Py2exe como falou o João Santana. Vc tbm pode tentar o pyInstaller http://www.pyinstaller.org/ que dizem que gera binários tbm para Linux.

P.S.: Talvez no futuro haja uma forma de criar um binário de verdade a partir do Pypy, mas que eu saiba até agora não apareceu nada do tipo.


Particularmente, eu nem vejo muito motivo para isso, já que basta ter o interpretador instalado na máquina que vai executar o código, e alterar algumas partes do .py, como encoding e o env.

Claro, aplicações em python mais pesadas e/ou específicas poderiam até se beneficiar de um binário e mesmo de uma compilação local. Mas aí já é exercício de adivinha desse programador de fim de semana.
 



--

Com meus melhores cumprimentos,

João Santana
Ubuntu Evangelist
GPG Key B2966301

Luciano Rodrigues da Silva

unread,
Sep 8, 2012, 8:58:18 AM9/8/12
to pug...@googlegroups.com
A questão de ter um binário não seria por desempenho e sim por portabilidade. Por exemplo, eu poderia criar um aplicativo em Python para rodar em qualquer plataforma, mesmo as que não tivessem suporte. Imagine vc programar Lego MindStorms usando Python, quando a Lego só dá suporte a Java. O que acontece que é que o Pypy vai permitir gerar um programa para rodar em outra plataforma sem dificuldades. Por exemplo, já existe um port do php usando Pypy que permite que este utilize jit. Isso pode permitir alguem que use php (bleh) utilizar, por exemplo, a matplotlib.

2012/9/8 João Santana <joao.abo...@gmail.com>

Marc Jr

unread,
Sep 8, 2012, 2:02:33 PM9/8/12
to pug...@googlegroups.com
Oi Italo,

Rapaz, não é assim "difícil" de produzir um executável de código python pra rodar no Windows. Tudo depende do teu código  e librarias que você esta usando.
Por exemplo, ano passado trabalhei num projeto em python para conversões de arquivos pdf, imagens e edições de arquivos em pdf(Cortar paginas, acrescentar outras, modificar paginas e coisas do gênero).

O programa é 100% Python. Produzido no Fedora. A interface gráfica foi Wx, algumas librarias externas foram adicionadas, entre elas PyPdf.
Usamos Cx_Freeze para construir o executável/portável para Windows. O aplicativo rodava naturalmente em qualquer pc rodando Windows sem precisar de python instalado na maquina  (pelos menos foi usado no Windows 7, não sei para as outras versões). O Programa era usado principalmente a partir de uma chave usb.

Como o João mencionou:
Ser multiplataforma não significa que ele tenha que gerar binários para
toda e qualquer plataforma suportada. Significa que o interpretador

Detalha mais esse teu projeto ai rapaz, as vezes algumas modificações devem ser feita entre plataformas.

Abraço,
Marc


2012/9/7 Italo Rodrigo Curioso em Python <italorod...@gmail.com>
Cara faz temo que rodo pra gera um exe apartir do py e  não to conseguindo. lembrando que eu uso o ubuntu

--

Marcel Caraciolo

unread,
Sep 9, 2012, 6:25:33 PM9/9/12
to pug...@googlegroups.com, marcon...@gmail.com
Marcondes seria uma bela lighting talk pra sabado não sobre o cx_freeze ?  o que acha ?

boa discussão ia surgir!

2012/9/8 Marc Jr <marcon...@gmail.com>



--
Marcel Pinheiro Caraciolo
M.S.C. Candidate at CIN/UFPE

Renato Oliveira

unread,
Sep 9, 2012, 6:26:23 PM9/9/12
to pug...@googlegroups.com, marcon...@gmail.com
boa!

2012/9/9 Marcel Caraciolo <cara...@gmail.com>



--
Renato Oliveira
Graduando em Ciência da Computação UFPE - 2009.1
DA de Computação
Linux User - #532503

Fernando

unread,
Sep 9, 2012, 7:41:54 PM9/9/12
to pug...@googlegroups.com, marcon...@gmail.com
Seria ótimo,
Mas eu sugiro mostrar as 3 opções: py2exe, cx_freeze e pyinstaller, eu particularmente virei fã do pyinstaller.

2012/9/9 Renato Oliveira <renatooli...@gmail.com>

marina viana

unread,
Sep 10, 2012, 12:03:51 AM9/10/12
to pug...@googlegroups.com
Boa Marcel! pretendo participar acompanhei esse tópico com afinco, tb tive muita dificuldade com isso.
abraços,
Marina Viana

Marc Jr

unread,
Sep 10, 2012, 2:42:58 PM9/10/12
to pug...@googlegroups.com
Olha Marcel,

2012/9/9 Marcel Caraciolo <cara...@gmail.com>
Marcondes seria uma bela lighting talk pra sabado não sobre o cx_freeze ?  o que acha ?

boa discussão ia surgir!

Eu até aceito de dar um talk relâmpago, sobre Cx_freeze. Pelo menos o básico e mostrar um simples exemplo. 
Se der tempo eu até posso falar um pouco das diferenças que me fazem escolher Cx_Freeze e não pyinstaller ou py2exe. 

Só tenho uma duvida, qual o material disponível pra quem faz um talk? Um projetor? Um quadro?

Abraços,
Marc

Fernando

unread,
Sep 10, 2012, 2:57:40 PM9/10/12
to pug...@googlegroups.com


2012/9/10 Marc Jr <marcon...@gmail.com>

Olha Marcel,

2012/9/9 Marcel Caraciolo <cara...@gmail.com>
Marcondes seria uma bela lighting talk pra sabado não sobre o cx_freeze ?  o que acha ?

boa discussão ia surgir!

Eu até aceito de dar um talk relâmpago, sobre Cx_freeze. Pelo menos o básico e mostrar um simples exemplo. 
Se der tempo eu até posso falar um pouco das diferenças que me fazem escolher Cx_Freeze e não pyinstaller ou py2exe. 

Só tenho uma duvida, qual o material disponível pra quem faz um talk? Um projetor? Um quadro?

Projetor com certeza, não conheço o local, por isso não sei dizer se tem quadro.
Aproveita e submete aqui:

Vamos aceitar inscrições na hora, mas é bom já ter cadastrado pra melhor organização =). Fica a dica pra outras pessoas que queiram dar uma palestra relâmpago, recomendo, é legal! =D

[]s



--
http://about.me/fernandogrd

Italo R dos Santos

unread,
Sep 10, 2012, 6:26:12 PM9/10/12
to pug...@googlegroups.com
Ei galera é o que to pensando mesmo ? vcs estão pensando em fazer tipo uma "palestra" sobre esse assunto de criar um exe ? cara se for isso mesmo eu ia adorar participar . por favor galera se for possivel me avisem 

Renato Oliveira

unread,
Sep 10, 2012, 6:30:22 PM9/10/12
to pug...@googlegroups.com
Então Italo, sábado agora na POLI vai rolar o XX encontro do PUG-PE e o que Marcel e Fernando sugeriram foi que Marcondes desse uma palestra relâmpago disso!
Agora é torcer pra ele submeter.

Lembrando que o encontro é sábado, a partir das 8:00 e vai até às 17hrs

Abraços

2012/9/10 Italo R dos Santos <italorod...@gmail.com>



--

Italo R dos Santos

unread,
Sep 10, 2012, 6:31:29 PM9/10/12
to pug...@googlegroups.com
cara se ele for faser isso mesmo não perco isso por nada

Italo R dos Santos

unread,
Sep 10, 2012, 7:59:18 PM9/10/12
to pug...@googlegroups.com
Galera depois de muito ler aqui  e traduzir no google conseguir fazer a conversão usando o CX-Freeze vi no google que depois de instalar o cx-frizer era só usar o comando cxfreeze nomedoarquivo.py --target-dir dirName fiz isso e segundo o tutorial que vi isso criaria uma pasta com varios arquivos. só que  apareceu uma pasta com 2 arquivos um que parecia ser EXE mais o windows não reconhecia. e o outro  era do tipo   apicação/ x-  sharedlib.
tentei renomear o outro arquivo e por a extenção EXE nele. acho que deu certo só que quando tentei executar no windows abriu um janela preta (acho que era o pront de comandos) e fechou rapido.

Queria saber se a falha estar no meu programa pois lembro que quando tava tentando aprender C++. quando criava alguns programinhas para linux era de uma forma e para windows era de outra forma pois no windows tinha que colocar um comando pra dar uma pausa na tela se nao ele fechava logo.


descupa a falta de experiencia  em Python

Marc Jr

unread,
Sep 10, 2012, 10:04:40 PM9/10/12
to pug...@googlegroups.com
E ai galera,

Eu submeti minha inscriçao para a palestra relampago. Bora ver o que da.

2012/9/10 Italo R dos Santos <italorod...@gmail.com>
Galera depois de muito ler aqui  e traduzir no google conseguir fazer a conversão usando o CX-Freeze vi no google que depois de instalar o cx-frizer era só usar o comando cxfreeze nomedoarquivo.py --target-dir dirName fiz isso e segundo o tutorial que vi isso criaria uma pasta com varios arquivos. só que  apareceu uma pasta com 2 arquivos um que parecia ser EXE mais o windows não reconhecia. e o outro  era do tipo   apicação/ x-  sharedlib.

tentei renomear o outro arquivo e por a extenção EXE nele. acho que deu certo só que quando tentei executar no windows abriu um janela preta (acho que era o pront de comandos) e fechou rapido.
Italo esses "sharedlibs" são as famosas "DLL"(Dynamic-Link Library) no windows. Se o teu programa for complexo, com varias bibliotecas adicionais importadas, é provavelmente mais interessante você mesmo editar o script setup.py.

Queria saber se a falha estar no meu programa pois lembro que quando tava tentando aprender C++. quando criava alguns programinhas para linux era de uma forma e para windows era de outra forma pois no windows tinha que colocar um comando pra dar uma pausa na tela se nao ele fechava logo.
Pode ser que seja isso mesmo, no Windows ele fecha o console tao rápido que não da tempo nem de piscar os olhos. Então adiciona umas linhas de código ai pra testar.
 
Se teu objetivo é rodar exclusivamente no Windows, adiciona isso no fim do teu programa:
  1. import os
  2. os.system("pause")         # exclusiva pra windows
Ou melhor ainda, para ser portável entre plataformas adiciona esse aqui em vez desse acima:
  1. import sys
  2. sys.stdin.read(1)             # No final da execução do programa é só apertar enter que ele quita

Vê ai o que da e me diz se funciona.

Abraço,
Marc

Renato Oliveira

unread,
Sep 10, 2012, 10:06:32 PM9/10/12
to pug...@googlegroups.com
Massa Marcondes! o/

2012/9/10 Marc Jr <marcon...@gmail.com>

Italo R dos Santos

unread,
Sep 11, 2012, 7:07:57 PM9/11/12
to pug...@googlegroups.com
Cara eu coloquei o codigo que vc passou o segundo mas não funcionol. acho que deve ser na hora de criar o exe não sei porque não esta criando so cria 2 arquivos e um deles o windowns não reconhece. ai eu renomeio com o final .exe ele so faz abrir a tela preta e fecha rapido

João Santana

unread,
Sep 11, 2012, 7:18:55 PM9/11/12
to pug...@googlegroups.com
Tenta executar pelo prompt de comando, ou seja lá como se chama hoje o
terminal do windows. Se estiver dando algum erro, ele deve apontar, e
aí fica mais fácil saber o que está acontecendo de errado.

Em 11 de setembro de 2012 20:07, Italo R dos Santos

João Santana

unread,
Sep 11, 2012, 7:20:32 PM9/11/12
to pug...@googlegroups.com
Uma pergunta: esse aplicativo que está desenvolvendo vai rodar numa
máquina Windows, correto? Por que então não instalar o Python nessa
máquina, acertar o código nela e criar um .bat chamando o
interpretador e passando o script na linha?

Em 11 de setembro de 2012 20:18, João Santana
<joao.abo...@gmail.com> escreveu:

Andre Amorim

unread,
Sep 11, 2012, 11:02:14 PM9/11/12
to pug...@googlegroups.com
Cara tenta usar o tuto do Anderson Berg:

http://www.pythonize.org/transformando-seu-codigo-python-em-executavel-com-o-py2exe/

também recomendo fortemente o Gui2exe:

http://code.google.com/p/gui2exe/

usado no interessantíssimo projeto InVesalius:

http://www.softwarepublico.gov.br/ver-comunidade?community_id=626732

Paulo Oliveira

unread,
Sep 11, 2012, 7:33:40 PM9/11/12
to pug...@googlegroups.com
João, essa é uma alternativa mas não é muito "comercial".

1. Teu código vai ficar acessível, legível e editável.
2. Se for um projeto comercial o usuário pode não querer instalar o python em X máquinas.
3. O usuário leigo desinstala o python e teu programa para de rodar

Quando se cria .exe, ele compacta todas as dependências (dlls, libs) dentro do arquivo e não necessita que o python esteja na máquina, sendo assim bem mais portável.

Mas enfim, se for para uso pessoal, sua solução é a mais simples mesmo.

João Santana

unread,
Sep 13, 2012, 3:20:20 PM9/13/12
to pug...@googlegroups.com
Certo, mas no caso específico do Ítalo, trata-se de um programa que ele anda desenvolvendo para uso na própria empresa em que ele trabalha. Não me parece que seria um projeto comercial, por isso sugeri isso. Na empresa em que trabalhei até recentemente, só minha máquina tinha Python, para poder rodar meus scripts para tudo, desde INSS até IRPF e seguro-desemprego.

Hugo Salvador

unread,
Sep 17, 2012, 8:00:17 AM9/17/12
to pug...@googlegroups.com
Italo,

Lembrei de um detalhe que talvez se encaixe para o que você quer. Se você quer só mostrar para a turma do trabalho algo que você está desenvolvendo sem instalar o Python em uma máquina, usa o portablepython ( http://portablepython.com/ ). É um python que roda direto do pendrive. Você pode levar seu script no pendrive junto com o python e rodar em qualquer Windows.

Exite as versões em Python 2.7.3 e 3.2.1.
Reply all
Reply to author
Forward
0 new messages