Feb 1st, 2023
The venv
module is a built-in Python library that allows you to create virtual environments for your Python projects.
Virtual environments allow you to have separate Python environments for different projects, each with their own set of dependencies and packages.
This can be useful for isolating different versions of packages and avoiding conflicts between projects.
Here are some of the most commonly used methods in the venv module:
venv.create(path, system_site_packages=False, clear=False, symlinks=False)
: This method creates a new virtual environment in the specifiedpath
. Thesystem_site_packages
parameter, if set toTrue
, allows the virtual environment to access packages installed globally. Theclear
parameter, if set toTrue
, removes the contents of the target directory before creating the virtual environment. Thesymlinks
parameter, if set toTrue
creates symbolic links to files rather than copies.
import venv venv.create('.env', with_pip=True)
activate()
: This method activates the virtual environment and changes the environment variables so that the Python interpreter, pip, and other commands use the packages and dependencies in the virtual environment.
source .env/bin/activate
deactivate()
: This method deactivates the virtual environment and restores the original environment variables.
deactivate
venv.EnvBuilder(system_site_packages=False, clear=False, symlinks=False, upgrade=False, with_pip=False)
: This method creates a builder class that can be used to customize virtual environment creation.
builder = venv.EnvBuilder(with_pip=True, clear=True) builder.create('.env')
It's important to note that venv
module was introduced in Python 3.3. If you are using an earlier version of Python, you can use virtualenv
package instead.
You can also use the pip freeze > requirements.txt
command to save the packages and dependencies of the virtual environment to a file, and then use pip install -r requirements.txt
command to install the same packages and dependencies in another environment.
I hope this gives you a good overview of the venv
module and its associated methods. Let me know if you have any questions or need more examples.