Перераспределение приложений с графическим интерфейсом Python

StackOverflow https://stackoverflow.com/questions/153956

Вопрос

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

Какие у меня есть варианты библиотеки GUI, которые позволяют мне распространять мое приложение автономно, предполагая, что у пользователей нет рабочей установки Python и, очевидно, нет библиотек GUI, которые я использую?

Кроме того, как бы я собрался упаковать все в двоичные файлы разумный размер для каждой целевой ОС?(мои основные цели - Windows и Mac OS X)

Дополнение: Я просматривал wxPython, но я нашел множество ужасных историй о том, как упаковать его с помощью cx_freeze и получить более 30 мб двоичных файлов, и никаких реальных советов о том, как на самом деле позаботьтесь об упаковке и о том, насколько она заслуживает доверия.

Это было полезно?

Решение

http://wiki.wxpython.org/CreatingStandaloneExecutables

Он не должен быть таким большим, если только вам не удалось включить отладочную сборку wx.Кажется, я помню около 4 МБ для python.dll и аналогичный файл для wx.

Другие советы

Python имеет встроенный графический инструментарий с именем Ткинтеръ который основан на библиотеке Tk из языка программирования TCL.Он очень простой и не обладает всей функциональностью, которую вы ожидаете, например, в Windows Forms или GTK, но если вам необходим независимый от платформы инструментарий, я не вижу другого выбора, принимая во внимание, что вы также не хотите так сильно расширять двоичный файл.

Использовать Tkinter совсем не сложно, поскольку в нем нет миллионов виджетов / элементов управления и опций, и он является набором инструментов по умолчанию, включенным в большинство дистрибутивов python, по крайней мере, в Windows, OSX и Linux.

GTK и QT они красивее и мощнее, но у них есть один большой недостаток для вас:они тяжелые и зависят от третьих библиотек, особенно от GTK, который имеет множество зависимостей, что немного затрудняет его распространение встроенным в ваше программное обеспечение.

Что касается создания двоичного файла, я знаю, что есть py2exe, который преобразует код python в исполняемый код win32 (.exe), но я не уверен, есть ли что-то подобное для OSX.Вы беспокоитесь из-за того, что люди могли увидеть исходный код, или просто для того, чтобы вы могли объединить все в один пакет?Если вы просто хотите объединить все, что вам не нужно для создания отдельного исполняемого файла, вы можете легко создать установщик:

Создание дистрибутива на python

Это руководство о том, как распространять ваше программное обеспечение, когда оно будет готово.

http://Gajim.org для Windows использует python и PyGTK.Вы можете проверить, как они это сделали.Кроме того, есть PyQt для GUI (и wxpython, упомянутый ранее).

У меня нет никакого опыта создания автономных приложений для какой-либо платформы, кроме Windows.

Это сказало:

Ткинтеръ: отлично работает с py2exe.Python Megawidgets ("библиотека расширения" для Tkinter) также работает нормально, но он делает странные вещи с динамическим импортом, поэтому вам нужно объединить все компоненты в большой файл "pmw.py " и добавьте это в свой проект (ну, у вас также будет pmwblt.py и pmwcolor.py).Где-то есть инструкции о том, как это сделать (либо в py2exe wiki, либо в PMW docs).Tix (расширение к Tk, которое вы можете использовать с Tkinter) не работает с py2exe, или, по крайней мере, так было со мной около четырех лет назад.

wxPython также отлично работает с py2exe.Я только что проверил приложение, которое у меня есть;общий объем дистрибутива составил около 11 МБ.В основном это были библиотеки DLL wx и файлы .pyd, но я не вижу, как вы могли бы избежать этого.Если вы ориентируетесь на Windows XP, необходимо включить манифест в ваше setup.py иначе это будет выглядеть некрасиво.Видишь это электронное письмо за подробностями.

Я сам использовал py2Exe - это действительно просто (по крайней мере, для небольших приложений).

Комбинация, с которой я знаком:wxPython, py2exe, upx

Ключом к решению вашей последней проблемы по поводу размера дистрибутива является использование upx чтобы сжать библиотеки DLL.Похоже, они поддерживают исполняемые файлы macOS.Вы заплатите штраф за первоначальную распаковку при первой загрузке DLL-файлов.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top