Python Desktop Applications [closed]
Asked Answered
M

3

5

I'm using wxPython since about 2 years for several small scientific programs which I distribute to many Colleagues. I like wxPython and I'm already very familiar with it but there are few things which drive me crazy (not because of wxPython, actually I would like to continue to use it):

1) I have many users on different Operation systems. I know wxPython is cross platform but I have already no nerves and time to port all my small software’s (and more will come) every time to different Operation systems. Especially I'm not using some of them (Windows7, Mac), so it's hard for me to solve problems and user requests.

2) We update our software’s quite a lot (because all the time new ideas come from users and ourselves) which means for me to generate all standalones again, upload them and for the users to uninstall and install again. Nasty...

I was thinking already to switch to Web Frameworks but there are some problems. First, many users like to use my software’s offline, e.g. when they travel or have no internet. Second we have some data in some databases which should NEVER go on a server. It’s all about patents and will be always a discussion, so I prefer to have some of my programs a standalone desktop application to simplify things. Others can be online, no problem.

So, in general I would love a browser based solution, since everybody has a browser. I saw that some people ported Django projects as a standalone desktop application, which I found not a bad idea. I also red about Camelot but I think this is rather for databases. Camelot would be useful only for some of my tools which are rather a database searching and extraction programs. But other doesn’t use databases at all.

Can anyone suggest me, what would be a good solution for my tools?

Miscreated answered 23/4, 2012 at 14:17 Comment(0)
L
5

You could use e.g. flask for providing a UI.

So just write you applications as normal, but without a GUI (normally you should anyways separate logic and GUI). Afterwards use e.g. Flask (I really like this microframework, but there are also others like Bottle) to write a UI in form of a website. You can run this website either locally (that's one line of code: app.run() then open it in the webserver with the URL http://localhost:5000) or on a webserver e.g. with apache or nginx.

Lorola answered 23/4, 2012 at 14:35 Comment(1)
A missing ingredient for this answer is here: reddit.com/r/Python/comments/21evjn/…. It talks about how to distribute the web appIamb
F
2

How about using Flex with Python? Your interface is portable (since Flex creates flash files); and you can use Python to wire up the interface.

In addition you can decide (based on your app) to deploy them on the web or wrap them as native executable with Flex.

Your only challenge would be if you decide to package the application for Windows, to make sure to package Python along with it correctly (should that be required).

Fluky answered 23/4, 2012 at 16:36 Comment(0)
F
1

This might not fit with how your users use your application but one option would be to make a Linux virtual machine (Virtualbox supports most common operating systems as hosts) and distribute that instead.

This would give you a single target to develop against and, as a bonus if you looked into the update mechanism of your chosen distribution (Apt, Yum etc.) you should be able to add your own server as a source and have the VM keep itself updated without your users needing to do anything.

Fant answered 23/4, 2012 at 17:10 Comment(1)
That's an interesting idea and I even found something similar to my tools using a virtual machine (dnalinux.com). How the GUI is made? Can I use my old code written with wxPython?Miscreated

© 2022 - 2024 — McMap. All rights reserved.