Python в разработке настольных приложений
Моя компания обновляет ИТ-инфраструктуру и системы, поэтому мы находимся в середине завершения разработки технологии для разработки новой системы.
Мы пришли к двум кандидатам; Java и Python.
Основными критериями выбора является язык, который должен быть полным; в некотором смысле, что он должен быть способен использовать для разработки веб-приложений и настольных приложений. Java доказана, это поле, со многими хорошими веб-фреймами (JSF, Hibernate и т.д.) И относительно хорошей графической библиотекой (SWT, Swing).
Однако, Python выглядит более восхитительно, поскольку из моего личного опыта, разработка в Python эффективна, я мог бы делать больше с меньшим временем (у меня есть только опыт в веб-разработке с Django). Однако, что касается настольного приложения, я все же нашел хорошую графическую библиотеку, интегрированную с IDE как Swing.
Может ли кто-нибудь указать мне лучшую, если возможно, графическую оболочку для настольного приложения для Python?
Ответы
Ответ 1
Для Python GUI существует 3 основных варианта:
(PySide - это вывод PyQt).
Для создания интерфейса вы можете использовать wxGlade для wx, а упакованный QtDesigner
для PyQt/PySide (который может преобразуйте файлы .ui
в .py
Все 3 используют собственные виджеты ОС, поэтому они будут выглядеть как дома.
Несмотря на то, что у меня больше опыта в wx, я действительно предпочитаю PyQt, так как я нахожу его более удобным для работы.
Для интегрированной среды разработки для приложений Python GUI нет никаких приложений (afaik), однако я лично использую PyDev в Eclipse, который может обрабатывать открытые .ui
файлы в QtDesigner для вас, которые вы сохранили, запустите инструмент, чтобы сделать .py
, и он будет работать практически безупречно.
Ответ 2
Вполне возможно создать приложение SWING GUI с Python. Ищите Jython, который является Python для JVM. Все чистые библиотеки Python (без компилированных C-кода) для Python будут работать с Jython, включая большинство стандартных библиотек Python.
Кроме того, поскольку Jython является языком JVM, он имеет доступ к объектам, предоставляемым библиотеками Java, таким как SWING, а также может использовать модель потоков JVM. Многопоточность в простом Python затруднена из-за блокировки Global Interpreter. Jython не имеет такого ограничения.
Если другие люди в компании склоняются к Java, то Jython с SWING будет более безопасным выбором, потому что, когда люди говорят, что вы должны использовать Java, потому что Cool Library X доступен, вы просто улыбаетесь и говорите, что Jython также может использовать Cool Library X, потому что Jython - это язык JVM.