Looking at Python for commercial apps but there are problems with packaging
I'm researching using Python for commercial desktop applications but deployment
seems problematic. I'm trying to decide if I'm looking at the wrong technology?
I love the language and I can see how productive I would be in it but I really need to be able to produce clean .exe files to deliver, and I would like for the solution to be cross-platform. I will be using Python 3.6+ and wxpython. cx_Freeze doesn't do single file exe's. Pyinstaller doesn't seem to play well with Python3 (maybe I'm doing it wrong). py2exe doesn't work for me either.
I'm sure there are a lot of very smart people working on this so it must be a hard problem which I would certainly be willing to help with but I'm wondering if I'm picking the wrong technology.
Alternatively I would use JavaFX, which would be fine, just not quite as productive.
9 comments
[ 3.2 ms ] story [ 26.9 ms ] threadThats what I would use (If target machines are windows)
I still havent tried Net core on Unix machines so I cant say much.
If you pack it into exe you lose the cross-platform thing, so you might aswell use any other language.
But last time I looked at it it was very much a work in progress.
https://code.google.com/archive/p/gui2exe/ https://launchpad.net/gui2exe
Another great product by Andrea Gavana
By updating the build script in the Github repo, you could update this to a newer version of Python 3.
To make a Windows binary doing the same thing would require a reasonable amount of knowledge about object files, linking, and Windows DLLs. It might be easier to use the MINGW GCC compiler rather than Microsoft, so consider that possibility. First thing to do is to understand how the CPython binary on Windows works and loads DLLs before actually executing Python code. The key is to intercept this process so that you have total control over all object files and do not rely on anything else being preinstalled on the target system.
Python is my goto language for fast development, but it's always felt a little clunky in windows. You may also need to consider gui issues. we ended up using pyqt, and it didn't quite feel like a windows app either.
You may want to consider, and I hate to say this, javascript for your language. The app we built had pdf libs we needed in python and not in javascript so a browser based solution wasn't available to us at the time. But being able to host the app is generally considered the easiest way to get cross platform these days.