Modern Python Projects Transcripts
Chapter: Python versions and packages
Lecture: 3 levels of pyenv
Login or
purchase this course
to watch this video and the rest of the course contents.
0:00
When we use pyenv, we can choose one of three different levels at which we want to change by Python version. First,
0:08
we have the global command, that we used in the previous lesson. This is the most common usage of pyenv.
0:14
It changes the Python version globally on your computer. This is an equivalent of installing a different Python version.
0:21
Next, we have local command, running pyenv local will set a specific Python version for a current folder. And for all the sub folders,
0:31
you would commonly used this command if you're working on different projects and each of them requires different Python version. For example,
0:38
one is using Python 3.8 and another is using Python 3.6. Instead of changing the global Python version back and forth,
0:47
you can just call pyenv local 3.6 in one folder and pyenv local 3.8 or 3.9 in another folder. And you are all set. pyenv full automatically switch
0:59
Python versions when you go inside, Either of those folders, let's see a short demo, as you can see my global
1:09
Python version Python version is Python 3.9 and let's say I have another project that requires Python 3.8
1:16
If I go inside this directory and I run pyenv local and I specified version of Python, you can see that now we're using 3.8.6,
1:36
and if we run pyenv list, and if we run pyenv versions, you can see that this version comes actually from this directory,
1:46
not from a global one. How does pyenv keep track of what version it should use.
1:51
Well, it simply creates a file called Python -version and puts the number inside. Later When you run Python Command pyenv checks,
2:02
is there a Python -version file in the current folder? If yes, use that version of Python.
2:10
If not, check the parent folder and the grand parent and So on.. until it gets to the top Most directory. If it doesn't find the Python version file,
2:20
it uses the global Python version, So, the pyenv local command overrides the pyenv global If we go out from this directory,
2:29
you can see that our global Python version is still Python 3.9. We didn't change anything, and finally we have pyenv shell.
2:41
This changes Python version for the current shell session. You might want to use it in a situation where you want to temporarily change which
2:50
Python version you are using. For example, maybe you want to run some code under Python 2. So, here we are using Python 3.9 as a global Python.
3:01
But I can temporarly change the shell to 3.8, or even to a system Python, which in my case, Python 2.7,
3:20
the Python Shell command overrides the Python versions set by pyenv global and pyenv local. So, if we go to our Python 3.8 project,
3:33
you can see that we are still using Python 2.7 that we said with pyenv
3:37
shell, unless you are working on multiple projects that use different Python versions.
40:04
pyenv global is the command that you will be using most often.