Jérôme Dx
Posted on October 23, 2023
If you work on several Python projects, you will quickly need to have different versions of your packages, depending on the current project.
Virtual environments are designed for this, they allow to isolate the libraries between your projects. There are different libraries you can use, I will show you Venv and Pipenv.
Venv
Venv is the built-in module for creating virtual environments in Python 3.
First let’s create a simple script, that needs two packages :
import requests
import numpy
if __name__ == "__main__":
# Use the requests library
request = requests.get("https://httpbin.org/get")
print("Response : ")
print(request.text)
# Use the numpy library
print("Numpy version : " + numpy.__version__)
Create a file "requirements.txt" :
requests>=2.25.1
numpy>=1.19.5
Then you can use this commands (don’t forget to add "venv" in your .gitignore file) :
# Create the venv
python -m venv venv
# Activate the venv
source venv/bin/activate
# Install the requirements
pip install -r requirements.txt
# Deactivate the venv
deactivate
Pipenv
Pipenv is a higher-level tool that combines package management and virtual environment management, using Pipfile.
First, install Pipenv :
brew install pipenv
Create a file "Pipfile", made for the script we are working on :
(you can also generate it with the "pipenv install" command)
[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"
[packages]
requests = ">=2.25.1"
numpy = ">=1.19.5"
[dev-packages]
Then you can use this commands :
# Inititiate the Pipfile (or install all packages)
pipenv install
# You can install packages (or edit Pipfile directly)
pipenv install requests
pipenv install numpy
# Activate/Deactivate the venv
pipenv shell # and Ctrl + D to quit
# Alternatively, run a command inside the virtualenv
pipenv run python
# Uninstall the venv
pipenv --rm
Both are good solutions for virtual environments, venv is built-in and lighter to write, also pipenv is faster and allows more possibilities, so choose the good one for the good context.
You can also be interested by Pyenv, a complementary tool made to manage different versions of Python on your computer.
Posted on October 23, 2023
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.
Related
November 13, 2024