CPython по сравнению с Jython по сравнению с IronPython для межплатформенной [закрытой] разработки GUI

9
задан Vladimir Keleshev 26 July 2010 в 18:19
поделиться

8 ответов

IronPython с Mono является кроссплатформенным - для любых платформ, поддерживаемых Mono, и для набора функций, поддерживаемого Mono (что в значительной степени означает, что Windows Forms поддерживается достаточно хорошо). Однако доступны другие варианты наборов инструментов графического интерфейса пользователя , которые могут обеспечить лучшие «кроссплатформенные» возможности или, по крайней мере, лучшее ощущение на платформах, отличных от Windows.

CPython будет зависеть от выбранного вами графического интерфейса. Лично я обнаружил, что CPython с PyQt является наиболее удобным кроссплатформенным графическим интерфейсом пользователя Python. Он очень мощный, многофункциональный и неплохо работает.

Jython будет работать, но мне лично не очень нравятся параметры графического интерфейса (однако это 100% личное предпочтение).

9
ответ дан 4 December 2019 в 07:46
поделиться

Я бы сказал, что если кроссплатформенность является целью, забудьте про IronPython. Многие людей ненавидят ад зависимостей, который это вызывает, поэтому будет слишком много работы, чтобы запустить его в некоторых ОС / дистрибутивах. Jython также пострадает от этого, хотя и в меньшей степени.

5
ответ дан 4 December 2019 в 07:46
поделиться

Java - самая портативная платформа. Jython написан на 100% чистой Java. 'Достаточно.

Кстати, я только что переключил проект CPython / GTK на Jython (пытаясь удалить как можно больше неуправляемого кода), единственная проблема в том, что Jython все еще находится на уровне 2,5, что отстой, когда вы привыкли к 2,6 / 2,7 / 3:)

2
ответ дан 4 December 2019 в 07:46
поделиться

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

Я не знаю о Qt, но для большинства графических программ (в PyGTK или Tkinter) лучшее, что можно сделать, что касается редактирования, - это использовать изображение PIL (или что-то подобное) для рисования, а затем нарисуйте это изображение на своем виджете холста, иначе вы можете потерять данные пикселей, если ваше окно будет закрыто.

1
ответ дан 4 December 2019 в 07:46
поделиться

Ну, Mono не поставляется с базой большинства дистрибутивов Linux. Это также не очень легкая зависимость, и я думаю, что Java значительно более вероятна для людей, у которых она уже есть. Планируете ли вы использовать "Winforms" с Mono? Если да, и у вас нет опыта работы с Winforms, почитайте, что говорят другие :-) Другим набором инструментов .NET GUI является WPF, который, к сожалению, Mono не планирует реализовывать.

Jython тоже был бы лучше, потому что вы можете использовать SWT, который отображает родные виджеты и предоставляет множество возможностей компоновки. Или вы можете использовать Jython с Swing, или с чем-нибудь еще - даже с AWT, если вы любите уродство.

Мне очень нравится wxPython (который вы можете использовать с CPython, который по умолчанию стоит в большинстве дистрибутивов), потому что он отображает хорошо выглядящие собственные виджеты в OSX, Windows и Linux (я лично видел только виджеты Gnome). wxPython, безусловно, самый простой в использовании набор инструментов GUI, который я использовал - даже программно (т.е. верстка без Glade или подобного). Я также использовал SWT, который показался мне довольно приятным, Swing, который лично мне не очень нравится, и Winforms, который был кошмаром при попытке сделать даже простые макеты.

Вот краткое сравнение существования интерпретатора/языка выполнения по ОС

  • CPython
    • Windows - Вероятно, не установлен, и вам придется заставить непитоновский установщик установить его вместе с вашим ПО: -P
    • Linux - Возможно, установлен (Ubuntu, Gentoo и RedHat имеют системные инструменты, написанные на Python и работающие на CPython)
    • Mac - Предустановлен на OSX
  • Jython
    • Windows - Возможно, установлен в какой-то момент, по моему опыту, хотя он не поставляется
    • Linux - Возможно установлен, но что более важно, никто не возненавидит вас за зависимость от него, как Mono
    • Mac - Предустановлен на OSX ("Mac OS X Leopard поставляется с J2SE 5. 0 preinstalled, based on JDK 1.5.0_13_b05" - сайт Apple)
  • IronPython
    • Windows - Вероятно, будет работать нормально, потому что я уверен, что у большинства людей есть по крайней мере .NET 2.0, если у них последняя версия Windows
    • Linux - Вероятно, не установлен - единственное приложение, с которым я использовал Mono на Linux, был Rasterbator, который работал хорошо, но я чувствовал себя странно, ставя . NET на Linux
    • Mac - См. выше

Я бы сначала выбрал набор инструментов GUI, так как это очень сильно повлияет на пользовательский опыт и общую сложность (я бы выбрал wxPython, но SWT был бы на втором месте), затем рассмотрел бы вышеупомянутые варианты, возможно, как переломный момент.

5
ответ дан 4 December 2019 в 07:46
поделиться

Вы можете использовать Python 2.7 или 3.1 (CPython) с ttk (в стандартной библиотеке в 2.7, 3.1), темами поддержки ttk (выглядит красиво и очень простое кодирование)

(1-й экран - текстовый редактор с вкладками и подсветкой синтаксиса) ttk screenshots

1
ответ дан 4 December 2019 в 07:46
поделиться

Взгляните на сопоставимый графический интерфейс, написанный на python / jython / ironpython. Найдите программы, которые вам нравятся, и узнайте, что они используют. Думаю, большинство, если не все, будет написано на cpython + gtk или cpython + qt. Я думаю, что все инструменты графического интерфейса в Python являются кросс-платформенными.

2
ответ дан 4 December 2019 в 07:46
поделиться

Примерно год назад я столкнулся с этим же вопросом. После просмотра всех альтернатив я остановился на CPython и PyQt. IMO, Qt / PyQt - безусловно, лучший выбор среди всех наборов инструментов графического интерфейса Python. После обнаружения множества ошибок в wxPython я переключился на PyQt и больше не оглядывался назад. По моему опыту, Qt / PyQt намного надежнее, чем инструменты wx.

Я использую ту же базу кода и создаю автономные исполняемые файлы с PyInstaller для Windows и Py2App для Mac (PyInstaller также может использоваться для Linux). Поскольку эти конструкторы встраивают интерпретатор Python и все зависимости, это избавляет от множества хлопот. Единственная загвоздка в том, что для сборки вам понадобится как Windows, так и Mac. Правильная настройка всех конфигураций тоже может быть сложной задачей, но это возможно и стоит потратить время.

3
ответ дан 4 December 2019 в 07:46
поделиться
Другие вопросы по тегам:

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