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