Python в разработке настольных приложений - PullRequest
15 голосов
/ 13 января 2012

Моя компания обновляет ИТ-инфраструктуру и системы, поэтому мы находимся в процессе завершения разработки технологии для разработки новой системы.

Мы пришли к двум кандидатам;Java & Python.

Основным критерием выбора является язык должен быть полным;в том смысле, что он должен быть в состоянии использовать для разработки веб-приложений и приложений для настольных компьютеров.В этой области доказано, что Java имеет много хороших веб-фреймворков (JSF, Hibernate и т. Д.) И относительно хорошую библиотеку GUI (SWT, Swing).

Тем не менее, Python выглядит более восхитительно, так как по моему личному опыту, разработка на Python эффективна, я мог бы сделать больше за меньшее время (у меня есть только опыт веб-разработки с Django).Однако, что касается настольного приложения, я еще не нашел какой-либо хорошей библиотеки GUI, которая интегрируется с IDE как Swing.

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

Ответы [ 2 ]

15 голосов
/ 13 января 2012

Для Python GUI есть 3 основных варианта:

(PySide является производным от PyQt).

Для построения интерфейса вы можете использовать wxGlade для wx и упакованный QtDesigner для PyQt / PySide (которые оба могут конвертировать .ui файлы в .py

Все 3 используют родные виджеты ОС, поэтому будут выглядеть прямо дома.

Несмотря на то, что у меня больше опыта работы с wx, я на самом деле предпочитаю PyQt, так как с ним гораздо проще работать.

Для интегрированной IDE для разработки приложений с графическим интерфейсом Python нет никаких (afaik) законченных приложений, однако я лично использую PyDev в Eclipse , который может обрабатывать открытие .ui файлов в QtDesigner для вас, которые вы сохраните, запустите инструмент для создания .py файла, и он будет работать в значительной степени безупречно.

4 голосов
/ 13 января 2012

Вполне возможно построить приложение SWING GUI с Python. Ищите Jython, который является Python для JVM. Любые чистые библиотеки Python (без скомпилированного кода C) для Python будут работать с Jython, включая большинство стандартных библиотек Python.

Кроме того, поскольку Jython является языком JVM, он имеет доступ к объектам, предоставляемым библиотеками Java, такими как SWING, а также может использовать модель потоков JVM. Многопоточность в простом Python затруднена из-за Глобальной блокировки интерпретатора. У Jython нет этого ограничения.

Если другие люди в компании склоняются к Java, то Jython с SWING будет более безопасным выбором, потому что, когда люди говорят, что вы должны использовать Java, потому что Cool Library X доступна, вы просто улыбаетесь и говорите, что Jython также может использовать Классная библиотека X, потому что Jython - это язык JVM.

...