Modern Python Projects Transcripts
Chapter: Python versions and packages
Lecture: Bonus: how pyenv works?
Login or
purchase this course
to watch this video and the rest of the course contents.
0:01
In this bonus lesson, I will show you how pyenv of works. If you're not interested, you can just skip it. So, to understand how it works,
0:10
you first have to understand how the path variable works. Path is an environment variable, and it exists on pretty much any operating system.
0:22
It specifies where you're operating systems should look for programs and commands that you run. When you display the content of a path variable,
0:30
you will see that it contains different folders. In this case, pyenv is the first directory.
0:35
But if we remove it, we go back to the default path variable that we have on our operating system. So, for example, if I run Python in the terminal,
0:47
my operating system will check for Python binary file in all those locations specified in the path variable. So, first it will check user/local/bin.
0:58
If it's not there, then user/bin, then bin user sbin sbin, and so on and so on. If it can't find Python in any of,
1:08
those directories is going to throw an error. If we run which Python, you can see in which directory this binary is located, in my case,
1:17
it was in the /usr/bin. When we use pyenv, if it modifies the path variable, it adds the path to the current Python version installed with pyenv.
1:28
At the beginning of that variable now, when you run Python, your operating system will first check inside this pyenv/shims
1:36
directory, and it will find Python binary there, so it will run this one instead of using the system Python.
1:44
We can confirm this by running which Python and, as you can see it found Python binary in the first directory,
1:50
so, it's not checking the other directories. So, that's why it's important to put the pyenv folder at the beginning of your
1:57
path variable. To better reflect how pyenv of works the folder with Python binary
2:03
is called Shim. It means a small tool that lies between the Python command in your terminal and the Python binary that is executed.
2:12
Thanks to that, pyenv is completely separated from any Python version that existed on your
2:17
computer before you install it. If you ever mess up something and pyenv stops working all you have to do is to remove it and install it again.
2:26
This is very convenient because, for example, if you ever mess up something with the system Python version, your computer will probably stop working,
2:34
and that's much harder to fix.