Python 3, an Illustrated Tour Transcripts
Chapter: Virtual Environments
Lecture: Walk-through: Virtual Environments and Pip (Unix)

Login or purchase this course to watch this video and the rest of the course contents.
0:00 In this video, we're going to look at the venv test assignment and we're going to do on Unix system so that'll work on Linux or Mac systems.
0:09 I've got the files downloaded from the labs here. Let's look at the venv test lab and you can see there's the assignment in that comment
0:18 under the test venv function that says use pipenv to create a virtual environment and install pytest
0:23 activate your virtual environment and run pytest on this file by invoking Python venv
0:31 You'll note that this will run pytest because at the bottom there we've got the check for if the __name__ attribute is the string __main__
0:38 import pytest and invoke pytest.main on the file. So let's do that, I'm going to create what's called a user install.
0:47 If you don't have access right to your system or install into your system Python,
0:52 you might need to do a user install, it has a few more steps, so this is how we do it.
0:56 We say Python 3 -m pip install --user and we're going to install pipenv. Okay, it looks like that installed.
1:08 Now what I need to do is be able to access the pipenv command-line utility
1:13 and because I installed that in a user install, Python installed in a certain place,
1:18 I'll show you where it came. Python -m I'm going to invoke the site module and say user-base, that says that it put it in my home directory
1:29 in library Python 3. So in there, I should see a bin pipenv executable. Let's see if that exists in the bin directory and there is a pipenv.
1:42 So now what I want to do is I want to make sure that this bin directory is in my path. So I'm going to update my .bash profile.
1:49 I'll just show you how I update it. It looks like that, and once you've updated that
1:58 you can source that file and you should be able to say which pipenv and it should tell you that it's using the user-installed pipenv.
2:10 Great, at this point, I'm ready to use pipenv and note that I'm in my directory, where I want to create the virtual environment,
2:17 I want to do it in the lab directory. If you don't create it from inside the directory you want to
2:22 you might have problems activating it automatically using the pipenv tool. So make sure you're in the right directory here.
2:29 All you have to say is pipenv install pytest. So it says it's creating a virtual environment for the project and it's installing pytest.
2:42 You can see up at the very top it says where the directory is in the virtual environment, it's in my home directory in the .local folder.
2:50 So if I just list the contents of the home directory, I'm not going to see that because it starts with a period
2:56 so I have to do an ls-al to actually get the local directory there. And you can see up at the top here, there's a .local directory there.
3:15 Okay, so inside of that local directory, there's a shared directory and then there's virtual environments inside of there
3:24 and it created this guy right here, talkpy3 -labs and if you look, there's a bin directory and there's an activate guy in there.
3:32 We're not going to run this the traditional way, we're going to use the pipenv tooling to activate this.
3:36 So how we activate with pipenv is we say pipenv shell. And you'll see that it says it's spawning an environment and it says use exit to leave.
3:46 So in this case, we don't use deactivate which is the traditional virtual environment command to leave the shell
3:51 we're going to use exit and also note that it updated our prompt here and it said that we're using this environment here.
3:58 You'll also note that when we ran pipenv, it created these two files here pipfile and pipfile.lock
4:04 Let's just look at pipfile and you can see that it says that it has installed pytest, we can look at the lock file.
4:15 The lock file has hashes for all the different libraries that we've installed. So if we want to get specific libraries reinstalled,
4:22 it's going to check those hashes to make sure that they're the same versions, nice little feature here.
4:27 Okay at this point, I should have pytest, let's see if pytest is found and it's found in my virtual environment, cool.
4:35 Let's say which Python to make sure that I'm using the Python from my virtual environment,
4:41 which Python, and in this case, I don't need to say Python 3 anymore because when we created the virtual environment
4:48 it made an executable called Python that is Python 3 there. I can also say Python 3, but those should be the same,
4:53 just to show you if I type Python now it says Python 3.6. Okay, and finally, let's run venv test and it says it ran one passed in 0.1 seconds.
5:07 So that's how you create a virtual environment and install pytest using pipenv. I'm also going to exit from this.
5:15 I'm going to say exit and you'll see that now I am out of my virtual environment.
5:20 So this video showed you how to use pipenv to create a virtual environment
5:25 and to install files, how to activate the virtual environment and how to exit from it.

Talk Python's Mastodon Michael Kennedy's Mastodon