Pergunta

Eu preciso desenvolver um aplicativo de GUI de desktop de pequeno porte médio, de preferência com Python como uma linguagem de escolha por causa de limitações de tempo.

escolhas que GUI biblioteca que eu tenho que me permita redistribuir meu aplicativo independente, assumindo que os usuários não têm uma instalação funcional Python e, obviamente, não têm as bibliotecas GUI Eu estou usando tanto?

Além disso, como eu iria sobre embalagem tudo em binários de razoável tamanho para cada OS alvo? (Meus principais alvos são o Windows e Mac OS X)

Adição: Eu estive olhando wxPython, mas eu encontrei muitas histórias de horror da embalagem, com cx_freeze e obtendo binários 30MB +, e nenhum real conselhos sobre como realmente fazer a embalagem e como digno de confiança ele é.

Foi útil?

Solução

http://wiki.wxpython.org/CreatingStandaloneExecutables

Não deve ser tão grande a menos que você conseguiu incluir a compilação de depuração de wx. I parecem rememebr cerca de 4Mb para o python.dll e similair para wx.

Outras dicas

Python tem um kit de ferramentas GUI incorporado chamado tkinter que se baseia na biblioteca Tk da programação TCL língua. É muito básico e não tem toda a funcionalidade que você espera em Windows Forms ou GTK, por exemplo, mas se você deve ter plataforma kit de ferramentas independente vejo nenhuma outra escolha levando-se em mente que você quer também não crescer tanto assim o binário.

Tkinter não é difícil em tudo para usar desde que ele não tem milhões de widgets / controles e opções e é o toolkit padrão incluído na maioria das distribuições python, pelo menos no Windows, OSX e Linux.

GTK e QT são mais bonitas e mais poderoso, mas eles têm uma grande desvantagem para você: eles são pesados ??e deppend sobre bibliotecas terceiros, especialmente GTK que tem um monte de dependências que o torna um pouco difícil de distribuí-lo embeded em seu software.

Como para a criação binário Eu sei que há py2exe que converte código python para win32 código executável (.exe de), mas eu não tenho certeza se há algo semelhante para OSX. Você está preocupado porque as pessoas podem ver o código fonte ou apenas para que você pode agrupar tudo em um único pacote? Se você quiser apenas para agrupar tudo o que você não precisa criar um executável autônomo, você pode facilmente criar um instalador:

Criando distribuível em python

Isso é um guia sobre como distribuir seu software quando ele é feito.

http://Gajim.org para Windows usa python e PyGtk. Você pode verificar, como eles fizeram isso. Além disso, há PyQt para GUI (e wxpython mencionado anteriormente).

Eu não tenho qualquer experiência de criação de aplicativos autônomos para qualquer plataforma diferente do Windows.

Dito isto:

Tkinter: funciona bem com py2exe. Python Megawidgets (uma "biblioteca de expansão" para Tkinter) funciona bem também, mas faz coisas funky com importações dinâmicas, por isso você precisa combinar todos os componentes em um arquivo grande "pmw.py" e adicioná-lo ao seu projeto (bem, você também vai ter pmwblt.py e pmwcolor.py). Há instruções sobre como fazer isso em algum lugar (quer no wiki py2exe ou nos docs PMW). Tix (uma extensão para Tk que você pode usar com Tkinter) não funciona com py2exe, ou pelo menos essa foi a minha experiência sobre há quatro anos.

wxPython também funciona bem com py2exe. Eu verifiquei apenas um app que eu tenho; toda a distribuição veio a cerca de 11MB. A maioria dos que foram as DLLs wx e arquivos .pyd, mas eu não posso ver como você gostaria de evitar isso. Se você está direcionando o Windows XP, você precisa incluir um manifesto em sua setup.py ou então ele vai olhar feio. Consulte este e-mail para mais detalhes.

Eu usei py2exe mim mesmo - é realmente fácil (pelo menos para pequenas aplicações)

.

A combinação que eu estou familiarizado com: wxPython, py2exe, upx

A chave para resolver a sua última preocupação sobre o tamanho da distribuição está usando upx para comprimir a DLLs . Parece que eles apoiar MacOS executáveis. Você vai pagar uma penalidade de descompressão inicial quando as DLLs são carregado pela primeira vez.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top