Can you recommend any cross platform Python app development frameworks where you write code once and it can be deployed to Linux, Android, Windows, MacOS and iOS.
Well @AgreeableLandscape@lemmy.ml has the real information we think you’re looking for, which is the GUI/executable aspect. Otherwise python programs/scripts run cross-platform as long as the code itself is designed for that. Depending on what you’re doing, you’ll have to account for interacting with the OS differently, but also include if-else statements to identify the OS, etc.
If you referring to GUIs:
-
GTK for Python: https://www.gtk.org/docs/language-bindings/python/
-
Qt for Python: https://www.qt.io/qt-for-python
If you mean making an executable that can run without separately installing a Python interpreter or PyPi dependencies, there are Python packagers like Pyinstaller: https://pyinstaller.readthedocs.io/en/stable/
Exactly @AgreeableLandscape@lemmy.ml , I am thinking of developing and shipping an GUI based app, which is ready to use without installing Python seperately. I am not sure if GTK and Qt for Python can be easily packaged and deployed on Android devices?
I found BeeWare which claims to write code once and deeploy it everywhere, such as on iOS, Android, Windows, MacOS, Linux, Web, and tvOS. I tested it once, but I had trouble with OS independet packages, which were not available for both OS, such as Android and Linux.
Furthermore I found KIVY, which claims to run on Linux, Windows, OS X, Android, iOS, and Raspberry Pi as well, but I didn’t manage to gete an Android apk up and running yet.
Your hint @masu@lemmy.ml is valuable, I think I need to make some code more OS independent. That should be the problem while playing with BeeWare, that some Python packages are not available on all plattforms.
That would really suck if some Python packages were OS dependent, do you have an example?. I know some are hardware dependent (jit for computing on your Cuda enabled GPU). But the OS identification is really useful for things like understanding if you should be using forward or backward slashes and nomenclature like that.
Any package that need access to hardware or the kernel would need to directly use operating system APIs. For example, a package that accesses LM_SENSORS on Linux wouldn’t work on Windows because the API would be completely different.
Ah very nice! I use Python for data science applications but that’s about it.
-