Compilando o programa Pyqt4

0

Estou tentando empacotar um programa que escrevi (usando Pyqt4) em um único executável para o Linux. Eu tentei usar o Pyinstaller no entanto, ele tem problemas com a importação do Gio (para configurações)

from gi.repository import Gio

A execução do aplicativo forneceria:

ImportError: cannot import name Gio

Eu então tentei usar o bbFreeze. O problema aqui é que depois de compilar e executar o aplicativo, recebo esta mensagem de erro:

TypeError: GObject.__init__() takes exactly 0 arguments (1 given)

Para bbFreeze este é o meu script que estou executando para compilar o código:

#!/usr/bin/env python

from bbfreeze import Freezer

includes = ["gio"]
excludes = []

bbFreeze_Class = Freezer('dist', includes=includes, excludes=excludes)

bbFreeze_Class.addScript("main.py", gui_only=True)

bbFreeze_Class.use_compression = 0
bbFreeze_Class.include_py = True
bbFreeze_Class()

Estou usando o Ubuntu 11.10 e o Python 2.7. Se alguém puder ajudar, isso seria ótimo. Esta é minha primeira vez escrevendo Python e tentando compilá-lo (então não tenho certeza se existem alternativas melhores).

    
por user654628 28.02.2012 / 03:49

2 respostas

1

Você não compila, mas apenas empacota. A compilação é onde você traduz o código-fonte em um código de objeto legível por máquina no conjunto de instruções nativo do seu computador. Então, por exemplo, você compila o código C em um executável.

O Python não é compilado, é interpretado. Mas você ainda pode executá-los, prefixando #!/usr/bin/env python em qualquer script e marcando-o como executável.

Em termos de empacotamento de um aplicativo Python para distribuição, é um pouco mais complicado do que você esperaria, mas há instruções oficiais do Ubuntu .

Como um aparte, se você está desenvolvendo com o Ubuntu Rapidamente , ele tem um comando para empacotamento.

    
por Ken Kinder 28.02.2012 / 05:18
0

Na verdade, o Python é compatível com o pacote . É melhor você olhar para distutils ou setuptools para empacotar seu pacote python. Eu recomendo o empacotamento de python para distribuir embalagens específicas, pois elas podem ser usadas em qualquer distribuição. Também dê uma olhada em alguns projetos que usam essas ferramentas para empacotamento em pypi , por exemplo, Django .

    
por sagarchalise 28.02.2012 / 08:18