2012-04-23 6 views
5

Я использую wxPython с примерно 2 лет для нескольких небольших научных программ, которые я распространяю для многих коллег. Мне нравится wxPython, и я уже очень хорошо знаком с ним, но есть несколько вещей, которые сводят меня с ума (не из-за wxPython, на самом деле я бы продолжал его использовать):Приложения для рабочего стола Python

1) У меня есть много пользователей на разных Операционные системы. Я знаю, что wxPython - это кросс-платформа, но у меня уже нет нервов и времени, чтобы переносить все мое небольшое программное обеспечение (и многое другое придет) каждый раз в разные операционные системы. Особенно я не использую некоторые из них (Windows7, Mac), поэтому мне сложно решать проблемы и запросы пользователей.

2) Мы обновляем наше программное обеспечение довольно много (потому что все время появляются новые идеи от пользователей и самих себя), что означает, что я снова создаю все автономные системы, загружаю их и удаляем и устанавливаем для пользователей. Nasty ...

Я уже думал о переключении на веб-Framework, но есть некоторые проблемы. Во-первых, многие пользователи предпочитают использовать автономное программное обеспечение, например, когда они путешествуют или не имеют интернета. Во-вторых, у нас есть некоторые данные в некоторых базах данных, которые НИКОГДА не должны появляться на сервере. Это все о патентах и ​​будет всегда дискуссией, поэтому я предпочитаю, чтобы некоторые из моих программ были автономным настольным приложением для упрощения. Другие могут быть в сети, без проблем.

Итак, в общем, мне бы понравилось решение на основе браузера, так как у всех есть браузер. Я видел, что некоторые люди портировали проекты Django в качестве автономного настольного приложения, которое я нашел неплохой идеей. Я также краснею о Камелоте, но я думаю, что это скорее для баз данных. Camelot был бы полезен только для некоторых моих инструментов, которые скорее являются программами поиска и извлечения базы данных. Но другие вообще не используют базы данных.

Может ли кто-нибудь предложить мне, что было бы хорошим решением для моих инструментов?

ответ

5

Вы можете использовать, например. колбу для обеспечения пользовательского интерфейса.

Так что просто напишите вам приложения как обычно, но без GUI (как правило, вы должны в любом случае разделять логику и графический интерфейс). После этого используют, например, Flask (Мне очень нравится этот микрокарт, но есть и другие, такие как Bottle), чтобы написать пользовательский интерфейс в виде веб-сайта. Вы можете запустить этот сайт либо локально (это одна строка кода: app.run(), а затем открыть его на веб-сервере с URL-адресом http://localhost:5000) или на веб-сервере, например. с apache или nginx.

+0

Отсутствующий компонент для этого ответа находится здесь: https://www.reddit.com/r/Python/comments/21evjn/is_it_possible_to_deploydistribute_flask_as_an/. Он рассказывает о том, как распространять веб-приложение. –

2

Как насчет использования Flex с Python? Интерфейс портативный (поскольку Flex создает флеш-файлы); и вы можете использовать Python для подключения интерфейса.

Кроме того, вы можете решить (на основе вашего приложения) развернуть их в Интернете или обернуть их как собственный исполняемый файл с помощью Flex.

Ваша единственная проблема заключается в том, что если вы решите упаковать приложение для Windows, убедитесь, что пакет Python вместе с ним правильно (если это потребуется).

1

Это может не соответствовать тому, как ваши пользователи используют ваше приложение, но одним из вариантов было бы сделать виртуальную машину Linux (Virtualbox поддерживает большинство распространенных операционных систем в качестве хостов) и распространять ее вместо этого.

Это даст вам одну цель для развития против и, в качестве бонуса, если вы посмотрите на механизм обновления выбранного вами дистрибутива (Apt, Yum и т. Д.), Вы сможете добавить свой собственный сервер в качестве источника и VM постоянно обновляется, и ваши пользователи не должны ничего делать.

+0

Это интересная идея, и я даже нашел нечто похожее на мои инструменты с помощью виртуальной машины (http://www.dnalinux.com/). Как создается GUI? Могу ли я использовать свой старый код, написанный с помощью wxPython? – snowflake