2010-04-10 3 views
16

Я хочу создать приложение, которое работает на компьютере пользователя, автономное приложение, с установкой и что-нет, но я хочу, чтобы интерфейс был браузером, внутренним и отображаемым как окно ОС или внешним доступным, используя браузер (т. е. некоторый http-сервер).Приложение Python Desktop с браузером в качестве интерфейса?

Причина в том, что я знаю немного о Python, но я думаю, что могу справиться, если у меня есть некоторые основные корни, которые я могу использовать и манипулировать, и это будут HTML, CSS и Javascript.

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

ответ

7

Python предлагает две вещи, которые должны быть ваш интерес:

  • веб-сервер в стандартной библиотеке
  • стандартизованный интерфейс для веб-приложений, называется WSGI

Так что это относительно легко добавить веб-интерфейс к вашему приложению. Например, в Mercurial (система управления версиями) у вас есть команда hg serve, которая запускает веб-сервер.

Чтобы увидеть питона запуск веб-сервер, и приложение WSGI, просто сделать:

python -m 'wsgiref.simple_server' 

Вы можете посмотреть на исходный код wsgiref или какой-либо WSGI учебник, чтобы сделать простое приложение.

После этого, вы можете использовать веб-фреймворк (для шаблонный & со), но это уже другой вопрос ...

+1

Для полноты следует упомянуть, что запуск бэкэнд в качестве http-сервера localhost wsgiref означает, что он доступен любому пользователю, который зарегистрировался на компьютере, а не только на том, кто запускает сервер. Если вы единственный пользователь, это, конечно, не проблема; возможно, его можно даже рассматривать как функцию, если есть несколько пользователей. –

2

Вы можете использовать Pyjamas. Это порт Google Web Toolkit для Python, который в основном означает, что вы пишете на Python и компилируется в HTML и JS.

+0

Это мертво. Звучит неплохо, хотя ... – Eli

+5

За исключением этого нет, так как его последняя фиксация была всего пару недель назад. –

+0

hmmm, сайт был мертв прошлой ночью, когда я проверил :) теперь он работает ... – Eli

1

Есть много отличных инструментов графического интерфейса для того, как вы хотите сделать свой графический интерфейс - HTML, CSS и Javascript. Если вы ничего не знаете, задайте в отдельном вопросе подходящие теги.

Сторона Python в таком расположении не должна иметь собственный графический интерфейс, а просто запускает подкласс HTTP-сервера стандартной библиотеки Python, просто обслуживая файлы HTML, CSS и JS, а также данные через JSON по другим URL-адресам что JS может достичь с помощью технологий Ajax, в основном реализуя хранилища и бизнес-логики - так что далеко не очевидно, что «инструмент GUI» вы могли бы хотите для этого ?!

Просто создайте сторону Python самостоятельно (например, с помощью IDLE, Wingware, SPE или что угодно) и HTML/CSS/Javascript отдельно со своим «GUI инструментом». Все, что Python будет делать с этими файлами, статически служить им, в конце концов.

Возможно, вы можете использовать некоторые шаблоны на стороне Python, такие как Mojo & c, но моя рекомендация состоит в том, чтобы избежать этого: скорее, перейдите с «архитектурой тонкого сервера», сделайте сторону Python сервером RESTful бизнес-логики и уровней хранения, а также все GUI работают в браузере.

+1

Это один из способов, но другие языки (например, .NET) имеют библиотеки, которые позволяют легко встраивать браузера в окно и сценариев или общения через простой API. Я нашел это полезным несколько раз сам, но не смог найти эквивалент в Python. wxPython имеет виджет браузера, но он довольно устарел и даже не поддерживает скрипты IIRC. Tk ничего не имеет. Встраивание Webkit для одного из инструментов GUI, но для компиляции и интеграции очень тяжелая боль. –

+0

Я думаю, что я ищу то, о чем говорит Макс, встроенный браузер, который может напрямую взаимодействовать через JS API с настольным приложением. – Eli

0

Вы прибегая к веб-браузер только потому, что у Вас возникли проблемы с Python виджеты, такие как Tkinter, wxpython и pyqt?

Вы попробовали Qt Designer? Это графический графический дизайнер GUI, который позволяет быстро и легко разрабатывать великолепно выглядящие графические интерфейсы. Он автоматически устанавливается с помощью PyQt.

http://www.riverbankcomputing.co.uk/software/pyqt/download

+0

Да и нет. У меня возникли проблемы с инструментами GUI, и для меня, как для веб-разработчиков, гораздо проще работать со стандартными HTML и JavaScript. Не работает ли Qt для некоммерческих приложений, если у меня нет лицензии Qt? – Eli

+1

@ Eli, Qt имеет двойную лицензию LGPL/Commercial. В принципе, если вы планируете опубликовать свое приложение, вам нужно либо открыть его, либо получить коммерческую лицензию. – 2010-04-10 17:21:35