Python for Decision Makers and Business Leaders Transcripts
Chapter: No Python here
Lecture: Probably not for shipping apps
Login or
purchase this course
to watch this video and the rest of the course contents.
0:00
Another thing where Python is challenged. This one is not impossible, it's certainly doable but it's not as easy as some of the other languages.
0:09
Is shipping packaged up applications to consumers. Now it's easy to ship Python web apps to servers
0:16
and make them run, or data science docker containers to data scientists to run their analysis. Like, that type of shipping stuff is, easy.
0:24
Same as, it's easy to ship the libraries like NumPy Or Jupyter to developers so, they can use to write their code and do the things they got to do.
0:34
What I'm talking about is I would like to give a consumer a final end user an icon they can put in their mac doc click it, and make it run.
0:44
Or they put it in their start menu in Windows and they click the icon, and it runs. They don't necessarily know anything about Python.
0:51
They don't know anything about setting up Python. They don't want to know the thing was created in Python.
0:57
They just want, here's a thing I receive from this company or this project. I double click it, a UI comes up, and magic happens.
1:06
There's two reasons that this is challenging. One, we talked about Python being an intermediate level of goodness for building UI desktop applications.
1:17
There's things like [Cute], Qt for Python. There's thing like WX Python, so yeah you can definitely build some decent UI's in Python.
1:25
But, it's not as easy as say windows forms or like old school visual basic where you had a designer and you drag and drop stuff over.
1:33
Remember that thing I just showed you about IOS and our app? We have that cool visual designer and the properties and all that?
1:39
There's not much of that. I believe the Qt folks have a Qt creator which is kind of like that. I don't know how well it supports Python though.
1:47
Anyway, you can build these desktop apps. It's not as good as some of these other frameworks but it's not bad. But, it's also difficult to turn Python
1:55
the Python source code, the Python run time and the libraries to depend upon into a thing you can give
2:00
to a user with no dependencies and no other requirements. Like, they don't have to set up Python and configure it.
2:06
Just, I want the icon, I just want to double click it and I want to work like Microsoft Word, Firefox Chrome, whatever.
2:13
Let's talk really quickly about some options for making that happen. If you do want to do it you can use something called PyInstaller.
2:21
So, PyInstaller is a thing you can point at a virtual environment with your Python source code
2:26
your dependencies installed, and it will create stand alone executables with these icons like I'm talking about
2:32
for Windows, Linux, macOS, Free BSD, Soleris, and AIX. I don't even know what AIX is actually. But it will create them for them.
2:40
So, you can distribute your applications there. And this works pretty well actually. I've done it a few times.
2:46
There's certain weirdness-es and things like why does the terminal show up on this operating systems but just the UI and no terminal on windows.
2:55
There's just, it's not smooth and absolutely perfect. There's just a few rough edge cases. So, I guess the advice I would give you here
3:03
is this might actually totally solve the distribution give me an icon I can double click it problem
3:09
but just test it. Make sure it's going to work for you. This one's been around here for a long time. You can see it's doing this fun razor thing.
3:16
Don't know what the status of it is but it's been recently updated. A newer one this one uses the Rust packaging tools to try to do some more
3:24
but maybe even improve upon PyInstaller called PyOxidizer. It's the same basic idea though. It's going to take your Python code
3:31
it's going to bundle Python the run time into it it's going to bundle the libraries that you said you depend upon and try to run your code.
3:38
So, maybe this is what you need maybe PyInstaller is what you need. If you can get those two to work for your project
3:43
then you're really far down the path of like we can probably use Python to distribute our application. For example, Dropbox does this.
3:51
If you have that little box icon in your start menu or you have it in your task bar or menu bar that is a local .exe or .app file
4:01
that is 100% Python or mostly Python. So, it can be done. It can totally be done. It's just not necessarily the easiest
4:07
pressing to compile button in visual studio and there's the .exe, I copied over and it runs. The streaming of these applications is challenging
4:15
but it can absolutely be done. So, It depends how committed you are to Python this is something that does take some work but it can be done.