Существуют ли библиотеки GUI для Python, которые позволяют вам скомпилировать EXE (Windows) и APP (Mac)?

Я работаю над приложением, которое мне нужно быть кросс-платформенным. Я бы хотел использовать Python для этого, и я ищу инструменты GUI, которые упрощают и упрощают программирование интерфейса. После небольшой охоты я нашел PythonCard. Это похоже на то, что он отлично подходит для счета, но я не уверен, что можно будет скомпилировать его до соответствующего исполняемого файла для каждой операционной системы. Я нашел эти инструкции, но им 6 лет.

Независимо от решения, которое я выбираю, необходимо поддерживать следующее:

  • Напишите один графический интерфейс для работы как с ОС Windows, так и с Mac OSX
  • Должен компилироваться в легко распространяемый файл для windows/mac
  • Скомпилированный файл не должен устанавливать Python на компьютер пользователя.

Может ли кто-нибудь порекомендовать библиотеку/решение, прежде чем я войду в пустынный мир Java?

Ответ 1

Я думаю, что ответ здесь меньше о конкретном инструментарии GUI и о распространении автономных приложений python. Лично я нашел инструменты для этого немного менее совершенным, чем хотелось бы, но после некоторого финиша они выполняют свою работу. Наиболее вероятным кандидатом, который бы соответствовал вашим потребностям, является cx_Freeze. Хотя существует специальная py2exe, а Mac - py2app, который может заполнить счет, если cx_Freeze недостаточно.

Ответ 2

Используйте PyInstaller, чтобы распространять приложение с помощью PyQt или WxPython gui toolkits. На веб-сайте:

PyInstaller - это программа, которая преобразует (пакеты) программы Python в автономные исполняемые файлы под Windows, Linux и Mac OS X.

Что касается наборов gui, PyInstaller документирован для работы с Qt3, Qt4 и WxPython.

StackOverflow contributor dF, использует PyInstaller для приложения, которое зависит от PyQt, PyQwt, numpy, scipy и еще нескольких.

Ответ 3

Хм.

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

В нашей компании мы создали кросс-платформенное графическое приложение, и, конечно же, мы должны сделать его легко доступным для клиентов. Итак, мы нашли подходящую инфраструктуру GUI с привязками python (Qt), затем мы выбрали метод, чтобы скрыть ненужные подробности о реализации и исчезновении зависимостей (Py2Exe для Windows, Py2App для Mac и ничего для Linux, но вы можете попробовать PyInstaller или cx- замораживать).

Установка для каждой ОС, сделанной в этой ОС, согласно наименее удивительному принципу. Вот почему мы не упаковывали версию Linux в какие-то бинарные исполняемые файлы.

Ответ 4

Если вы хотите, чтобы ваше приложение выглядело и само по себе, тогда wxPython - это путь. PyQt может выглядеть как родной, но звучит не так, как будто он всегда ведет себя по-родному (согласно некоторым потокам, которые я прочитал). Чтобы создать двоичные файлы, используйте py2exe или некоторые из них для Windows и py2app для Mac

Ответ 6

Для дизайнеров GUI Wxpython проверьте этот вопрос. Я перепробовал boa-contstructor, но я нашел его слишком ограничивающим - не все виджеты поддерживаются. AFAIK ни один из дизайнеров wxpython не поддерживает все виджеты (из коробки по крайней мере).

Я лично считаю, что быстрее и легче передать код моего графического интерфейса. Я говорю, что мне потребовалось всего несколько дней, чтобы стать достаточно комфортным/семейным wxpython. Если вам нужно сделать что-нибудь другое, а затем создать простое приложение, то потребуется немного времени, чтобы узнать, что wxpython будет выплачивать свои дивиденды.

Если вы связаны с идеей создания дизайнера GUI спуска, то ваш лучший выбор - probabaly PyQt, поскольку этот IMHO - единственный инструментарий, у которого есть зрелый зрелый редактор - Qt Designer

Как для создания автономных excutables Ive использовал py2exe для окон. py2app делает то же самое для mac, хотя я еще не пробовал это.

Для разработчиков Windows checkout этот поток