Como posso distribuir o programa .py sem que o usuário tenha que ficar instalando todas as bibliotecas?

630 views
Skip to first unread message

Andre Pls

unread,
Jun 13, 2015, 2:36:12 PM6/13/15
to python...@googlegroups.com

Estou aprendendo Python e preciso distribuir um programa, li sobre o cx_Freeze e o py2exe para gerar um .exe. Porém, não me importo em distribuir o código do programa junto, logo, não vejo necessidade em gerar um .exe.

Como posso distribuir o programa .py sem que o usuário tenha que ficar instalando todas as bibliotecas utilizadas no programa? Posso criar um instalador?

Raniere Silva

unread,
Jun 13, 2015, 7:21:17 PM6/13/15
to python...@googlegroups.com
> Como posso distribuir o programa .py sem que o usuário tenha que ficar
> instalando todas as bibliotecas utilizadas no programa?

Normalmente você fornece um arquivo chamado requirements
e o seu usuário pode instalar todas as dependências utilizando

# pip install -r requirements

Maiores informações em https://pip.readthedocs.org/en/1.1/requirements.html.

> Posso criar um instalador?

Você diz um *.exe? Se sim, eu não sei.
signature.asc

Andre Pls

unread,
Jun 13, 2015, 8:40:37 PM6/13/15
to python...@googlegroups.com
Então, não acho muito interessante que o usuário fique digitando "# pip install -r requirements", não tem como dar um arquivo em que ele clique e as dependências sejam instaladas?

Fabio C. Barrionuevo da Luz

unread,
Jun 13, 2015, 8:50:01 PM6/13/15
to python...@googlegroups.com
Andre, você vai ter que usar algo como:
http://cx-freeze.readthedocs.org/en/latest/
http://www.py2exe.org/
para empacotar a maquina virtual Python, o seu programa e todas as dependências dele, em um único executável.

O aplicativo do Dropbox e do Google Drive para Windows fazem exatamente isso.

--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com

---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.



--
Fábio C. Barrionuevo da Luz
Acadêmico de Sistemas de Informação na Faculdade Católica do Tocantins - FACTO
Palmas - Tocantins - Brasil - América do Sul


Blog colaborativo sobre Python e tecnologias Relacionadas, mantido totalmente no https://github.com/pythonclub/pythonclub.github.io .

Todos são livres para publicar. É só fazer fork, escrever sua postagem e mandar o pull-request. Leia mais sobre como publicar em README.md e contributing.md.
Regra básica de postagem:
"Você" acha interessante? É útil para "você"? Pode ser utilizado com Python ou é útil para quem usa Python? Está esperando o que? Publica logo, que estou louco para ler...

Andre Pls

unread,
Jun 13, 2015, 9:47:23 PM6/13/15
to python...@googlegroups.com
Então o aplicativo do DropBox e do Google Drive foram desenvolvido em Python? O python não me fornece nenhuma ferramenta NATIVA para que eu possa fazer isso?

Fabio C. Barrionuevo da Luz

unread,
Jun 13, 2015, 9:58:34 PM6/13/15
to python...@googlegroups.com
Nem Python, Nem Java, nem PHP, nem Ruby, nem Javascript te fornece ferramentas NATIVAS para empacotar o seu software em um executável.

luciano de souza

unread,
Jun 14, 2015, 12:19:41 AM6/14/15
to python...@googlegroups.com
A ideia do py2exe não é propriamente má, entretanto, pergunto se é
possível gerar o exe no Linux e sem uma máquina virtual. Dado que sou
cego, utilizo leitor de telas, não conseguiria instalar só o Windows
em máquina virtual.

Para mim, a ideia do "pip install -r" não é nada má, isto é, se em
Windows, o pip já vier com o Python, ou se mesmo não vindo, sua
instalação for do tipo "next, next, finish", estando ao fim,
plenamente configurado, isto é, sem a necessidade de configuração de
path ou de que o usuário posicione o executável do pip em alguma pasta
específica. Neste caso, ainda que haja duas instalações, a do Python e
a do Pip, basta enviar um .bat e o requirements para que o usuário
consiga proceder a instalação.

Contudo, se a instalação do pip for separada, se houver configurações
de path ou outros passos que para o usuário comum são entendidos como
complicações, então, a solução do "pip" para mim, não funcionará.


Em 13/06/15, Andre Pls<praze...@gmail.com> escreveu:
> --
> --
> ------------------------------------
> Grupo Python-Brasil
> http://www.python.org.br/wiki/AntesDePerguntar
>
> <*> Para visitar o site do grupo na web, acesse:
> http://groups.google.com/group/python-brasil
>
> <*> Para sair deste grupo, envie um e-mail para:
> python-brasi...@googlegroups.com
>
> ---
> Você está recebendo esta mensagem porque se inscreveu no grupo "Python
> Brasil" dos Grupos do Google.
> Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie
> um e-mail para python-brasi...@googlegroups.com.
> Para obter mais opções, acesse https://groups.google.com/d/optout.
>


--
Luciano de Souza

Ivan Ogasawara

unread,
Jun 14, 2015, 1:12:03 PM6/14/15
to python...@googlegroups.com

Vc pode tentar resolver com NSIS ... nsis.sourceforge.net ...

Ja fiz um script em python pra trabalhar em parceria com o nsis pea geraçao de kit de instalaçao de sistema em vb6 ... Acho seria facil usar o nsis pra gerar um kit de instalaçao de um sistema em python ... Talvez através dos arquivos das libs baixadas pra pip e conda ... Ai coloca tudo dentro do kit de instalação ...

Rodolfo De Nadai

unread,
Jun 15, 2015, 7:35:27 AM6/15/15
to python...@googlegroups.com
Bom dia pessoal,
já usei o cx_Freeze dica do Fabio em post anterior.

http://cx-freeze.readthedocs.org/en/latest/

O cx_Freeze gerou belezinha pra mim executáveis para serem distribuídos no windows, mac e linux. Claro que depende das libs que você esta usando no seu projeto.
Tive alguns pequenos problemas, pois meu projeto usava OpenCV e começou com alguns erros de path na hora de gerar o executável... mas passado isso, foi empacotado tudo 100% perfeito, rodando fácil fácil nas plataformas descritas acima.

No caso do windows, tive que fazer mais um passo que foi criar um instalador, windows style. Visto que o cx_Freeze não gera isso, mas gera o exe.

abs

Jose Paulo

unread,
Jun 16, 2015, 8:21:50 AM6/16/15
to python...@googlegroups.com
Olá Andre!
    Teria dificuldade de baixar as bibliotecas manualmente colocar em um .rar junto com seu programa e mais um .bat que executa a instalação das dependencias e do python?

Att.

Andre Pls

unread,
Jun 16, 2015, 3:56:37 PM6/16/15
to python...@googlegroups.com
Paulo, parece legal a ideia, teria algum tutorial de como posso fazer isso?

William Ferreira

unread,
Jun 16, 2015, 4:25:36 PM6/16/15
to Python Brasil
Andre, se for usar um arquivo .bat, pode chamar o wget de dentro dele, existe uma versão dele para windows[1], apesar que eu indicaria usar nsis conforme já foi citado.


--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com

---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.

Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.



--
William Ferreira

Jose Paulo

unread,
Jun 16, 2015, 5:11:22 PM6/16/15
to python...@googlegroups.com
Andre boa noite,
    Olha tutorial eu não tenho porem é uma tarefa simples, faça o download das bibliotecas e escreva o .bat da mesma forma que instalaria manualmente pelo cmd utilizando por exemplo: """python nome_da_lib_em_questao.py build
                                      python nome_da_lib_em_questao.py install"""
    E por ai vai, procure algumas coisas sobre os comandos básicos do cmd.

Att.

Marcelo Valle (BLOOMBERG/ LONDON)

unread,
Jun 17, 2015, 5:07:37 AM6/17/15
to python...@googlegroups.com
Puxa, um .bat parece uma mah solucao, pois eh dependente de SO, mas a ideia de empacotar tudo em um unico pacote nao parece ruim nao viu. 
Pra ser bem sincero, isso ajudaria muito no ambiente controlado aqui no trabalho, onde posso rodar scripts em um servidor mas nao posso instalar libs com pip ou qualquer outra coisa. 
Alguem sabe se jah existe alguma ferramenta open source pra isso?

[]s


Subject: Re:[python-brasil] Re: Como posso distribuir o programa .py sem que o usuário tenha que ficar instalando todas as bibliotecas?
Paulo, parece legal a ideia, teria algum tutorial de como posso fazer isso?

Em terça-feira, 16 de junho de 2015 09:21:50 UTC-3, Jose Paulo escreveu:
Olá Andre!
    Teria dificuldade de baixar as bibliotecas manualmente colocar em um .rar junto com seu programa e mais um .bat que executa a instalação das dependencias e do python?

Att.
--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com

---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.



<< ideas don't deserve respect >>

Marcelo Valle (BLOOMBERG/ LONDON)

unread,
Jun 17, 2015, 5:15:05 AM6/17/15
to python...@googlegroups.com

Renzo Nuccitelli

unread,
Jun 17, 2015, 6:38:55 AM6/17/15
to python...@googlegroups.com
Olá Luciano,

O instalador atual do Python apresenta uma opção que pode ser marcada no momento da instalação para que o pip seja instalado junto com o Python.

Contudo, ela vem desabilitada por padrão no Windows, sendo necessário ativá-la durante o processo. Não sei se esse é um problema para vc, não tenho idéia se o seu leitor consegue te repassar essa caixa de opção.

Essa mudança entrou no Python 2.7.9. Conversei com o Nick Coghlan na Pycon desse ano sobre o assunto. Comentei ter achado a mudança excelente para os novatos não terem que quebrar a cabeça para instalar pip no Windows. No entanto sugeri que a opção viesse marcada como padrão ;)

Abs,

leonardo lontra

unread,
Jun 17, 2015, 5:31:01 PM6/17/15
to python...@googlegroups.com
Pode usar:
cx_Freeze: http://cx-freeze.sourceforge.net/

Se quiser fechar o codigo, pode usar o cython(http://cython.org/) em conjunto com o pyinstaller, cx_freeze e etc.

Alex

unread,
Jun 19, 2015, 12:43:07 AM6/19/15
to python...@googlegroups.com
Nesse caso, se as dependências não exigirem compilação, você poderia criar um diretório como /libs
e colocar todas as dependências dentro dela e no inicializador principal de seu programa fazer o seguinte:

considerando que seu programa tenha uma estrutura assim

/program
--- /libs
------ dep.py
--- main.py


dentro de main

import os
import sys


sys
.path.append(
   os
.path.join(os.path.dirname(__file__), 'libs')
)


import dep # que está dentro de libs

Ou seja manipulando o sys.path você pode fazer o que quiser.


Em sábado, 13 de junho de 2015 15:36:12 UTC-3, Andre Pls escreveu:
Reply all
Reply to author
Forward
0 new messages