Как Python становится многоплатформенным языком программирования? - PullRequest
1 голос
/ 01 февраля 2012

Я говорю о развертывании Python-приложений, основанных на графическом интерфейсе, для настольных приложений в форматах .app и .exe для OSX и Windows. Насколько я вошел в Python, я видел его только как приложение, которое работает в терминале / командной строке. Я знаю, что для этого можно создать пользовательский интерфейс, используя различные предложения в Интернете (wxPython?). Я просто хочу посмотреть, как разработчик может создавать приложения для Mac и Windows с минимальной разницей в коде.

Ответы [ 3 ]

1 голос
/ 01 февраля 2012

Я считаю, что Python - очень хороший язык для программирования GUI.Как вы уже сказали, вы можете использовать привязки для wxWidgets (wxPython), но есть также привязка практически ко всем другим кроссплатформенным инструментам GUI, которые вы можете себе представить (Tk, Qt, GTK, FLTK и т. Д.).Эти наборы инструментов GUI должны позволять вам создавать программы, которые будут работать без изменений в большинстве ОС.

С точки зрения совместимости с Python OS он будет работать практически одинаково во всех ОС, за исключением одного или двух модулей, таких как mmap.

Используя py2exe, py2app или аналогичные инструменты, вы можете встроить интерпретатор Python (вместе с байт-кодом вашей программы и его зависимостями) в исполняемый файл, упрощая распространение приложения.Затем конечный пользователь может открыть программу так, как он привык.Если вам нужна «безопасность» скомпилированного языка, Python не будет лучшим языком для вас (но я предпочитаю удобочитаемость, а не безопасность:).

Еще одна вещь, которую следует учитывать при кросс-платформенности, - это то, какая ОСконкретные функции, которые вы планируете использовать.Большинство инструментов GUI не поддерживают такие вещи, как DWM от Microsoft (хотя вы можете использовать функции ОС через ctypes).

0 голосов
/ 01 февраля 2012

Для Windows самый простой подход - py2exe . Также есть аналогичный проект для MacOS. Это называется py2app . Большинство каркасов GUI являются кроссплатформенными. Просто проверьте их документацию, или даже домашние страницы должны иметь ее.

Хорошо используйте модуль os. Он имеет много функций, которые будут обрабатывать кроссплатформенные ситуации. Типичным примером являются пути к файлам. Когда вы строите путь, это должен быть обратный или прямой слеш? os.path.join обрабатывает это для вас и работает в зависимости от того, на какой операционной системе он работает. Вам вообще не нужно изменять код при доставке с ОС на ОС. Естественно, он должен работать и в Linux.

Кстати, MacOS часто поставляется в комплекте с Python. Поскольку это несколько более поздняя версия, это может иметь значение для сценария Hello World размером 1 КБ и 30 МБ, поэтому избегайте упаковки Python вместе с ним. К сожалению, Windows не так хорошо оснащена. Рассмотрим вариант «У меня уже установлен Python» при загрузке EXE.

0 голосов
/ 01 февраля 2012

Я думаю, что вы ищете PyQT и Tkinter . Обе библиотеки GUI для использования с Python. Оба кроссплатформенные. Далее, для упаковки .exe и .app для распространения, посмотрите на py2exe и py2app .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...