 Hey, welcome to another Microsoft soundbites. I'm Gez. I'm Stratis. And today we're going to look at Python virtual environments, what they are, why you should care about them, and how we use them in Microsoft. So let's jump straight into it. What are Python virtual environments? That's a good question. I think I would start with a problem statement more than a definition. So why don't I just run Python straight on my system? And the answer to that is oftentimes you have a pollution of projects. If you've got a lot of Python projects on your system, maybe you've done a pip install, and you've got various competing packages, or sometimes there is a need for different versions of the same package for various reasons. And so this is a problem, because if you're just installing things, you could accidentally overwrite a critical Python library to your operating system, or you could accidentally mess up a project that you were working on previously by updating a package that you weren't planning to. So the solution to that is a Python virtual environment, also known as VMV. Yes, they are often referred to as just VE and VE, which I say VEMV for some reason, but VEOMV, VEMV depends, you know, if you live in French, Canadian or not. They're a virtual environment that provides an isolated environment for your Python project. And so particularly if you're working on multiple different projects, then they give you an isolated environment for your project. And so as you said, you can have different versions of the same package installed in different environments. And I think the other really useful thing, at least for me, because I set up and rip down projects all the time, is that because they're contained, once I'm finished with the project, I delete that project directory from my system. And all of those Python dependencies that it's installed, they've taken, you know, they're deleted as well. All right. So here we are in the command line. And we're just going to take a quick look at what lives inside of Mycroft Core. So I'm currently in my Mycroft Core directory. And when you create a virtual environment, it creates a directory called .vomv. And so it's a hidden directory. And inside of this directory is everything that the system needs to create your Python environment for this project. So if I go inside, take a look inside of bin, you can see that there's a bunch of stuff already here, including PIP. So whenever I need to do a PIP install, or if I do for this project, there are there's a bunch of binaries in here. So as we were saying, we can see that there's the MSN binary that's inside of the bin directory. But it's not in my path yet. And that's because when you want to take advantage of the virtual environment, you have to do what's called activating it. Now in this case, there is a shell script that Mycroft provides called vomv activate. In Bash, you can either type source vomv, or you can also type . and then vomv. Either of these will work. And once you do that, you end up with this little nomenclature at the side telling you that you are actually pulling your path from the vomv. So now I have MSM and I can access those binaries because it's now edited my path. And these things are now available to me. That is Python virtual environments. And we haven't gone into a lot of detail, you know, there's plenty of resources online, if you want to dig into it more. We mostly wanted to explain really quickly what they are, because a lot of Mycroft's commands, they are interacting with the Mycroft virtual environment and they help to remove the need for you to interact with it directly. But it's still useful to know that it's there. Another really useful reason for virtual environments is that you can actually use a different Python interpreter for each project. So, you know, if one project is requiring Python 3.5 and another one requires Python 3.7, depending on which version of Python you use to set up your virtual environment, that is what's going to be used for everything within that virtual environment. Now, I think that about covers it. The goal of this wasn't to give you a tutorial on how to set up a virtual like we talked about. Really, it's just the idea of getting you used to how Mycroft functions and giving you some tools on helping you troubleshoot if you need to. In the next videos, we're going to look at some of the Mycroft tools that use virtual environments. So, we'll look at Mycroft PIP, Mycroft MSM, and yeah, they'll help you to do a lot more with your skills and get deeper into development. Sounds good. We'll look forward to kicking that off next time. Cool. Thanks, all.