Компиляция программы Pyqt4

Я пытаюсь упаковать написанную мной программу (используя Pyqt4) в один исполняемый файл для linux. Я попытался использовать Pyinstaller, однако у него есть проблемы с импортом Gio (для настроек)

from gi.repository import Gio

Запуск приложения даст:

ImportError: cannot import name Gio

Затем я попытался использовать bbFreeze. Проблема здесь в том, что после компиляции и запуска приложения я получаю следующее сообщение об ошибке:

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

Для bbFreeze это мой скрипт, который я запускаю для компиляции кода:

#!/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()

Я использую Ubuntu 11.10 и Python 2.7. Если кто-то может помочь, это было бы здорово. Я впервые пишу на Python и пытаюсь скомпилировать его (поэтому я не уверен, что есть лучшие альтернативы).

0
задан 28 February 2012 в 06:49

2 ответа

Вы на самом деле не компилируете, а просто упаковываете его. Компиляция - это то, где вы переводите свой исходный код в машиночитаемый объектный код в собственном наборе инструкций вашего компьютера. Например, вы компилируете код C в исполняемый файл.

Python не компилируется, он интерпретируется. Но вы все равно можете выполнить их, добавив #!/usr/bin/env python к любому сценарию и пометив его как исполняемый.

С точки зрения упаковки приложения Python для распространения, это немного больше хлопот, чем можно было бы надеяться, но есть официальные инструкции от Ubuntu .

Кроме того, если вы разрабатываете с Ubuntu Quickly , у него есть команда для упаковки.

0
ответ дан 28 February 2012 в 06:49

На самом деле Python поддерживает упаковку . Вам лучше заглянуть в distutils или setuptools для упаковки вашего пакета python. Я рекомендую упаковку Python для конкретной дистрибутивной упаковки, так как она будет использоваться в любом дистрибутиве. Также посмотрите на некоторые проекты, которые используют эти инструменты для упаковки в pypi , например, Django .

0
ответ дан 28 February 2012 в 06:49

Другие вопросы по тегам:

Похожие вопросы: