Managing Virtual environments in Python Poetry
Last Updated :
29 May, 2024
Poetry helps you declare, manage, and install dependencies of Python projects, ensuring you have the right stack everywhere. Poetry is a tool for dependency management and packaging in the PHP programming language that helps in managing project dependencies and creating virtual environments. Unlike other tools like pip and virtualenv, Poetry is a single tool that offers dependency management, packaging, and virtual environment creation. Poetry replaces setup.py, requirements.txt, setup.cfg, MANIFEST.in and Pipfile with a simple pyproject.toml based project format. This guide will guide you on how to create and control virtual environment using Poetry in order to achieve a very clean environment for developers.
Setting Up Virtual Environments
Poetry provides such tools also, which automatically define as well as maintain virtual environments for your respective projects. Here's how you can get started:
Install Poetry
use the following command on the terminal to install poetry:
pip install poetry

Initialize a New Project
Create a new project directory and initialize it with Poetry.
mkdir my_project
cd my_project
Run poetry init
Use the poetry init command to start the interactive setup for your pyproject.toml file:
poetry init
Follow the Prompts
This shall give you fields that require some input about your project. Below is an example :
project setup promptsManaging Environment Isolation
Another important feature offered by Poetry is controlling of environment isolation concerning dependent packages for different projects. Here's how Poetry handles this:
1. Creating a Virtual Environment
When you use Poetry Install or Poetry Add, Poetry first determines the exact location of the cache directory and then create a virtual environment inside it.
2. Checking the Virtual Environment
You can check the path of the virtual environment using the following command:
poetry env info --path
3. Activating the Virtual Environment
Activate the virtual environment to run commands within it and you will see your virtual env created will get activated.
poetry shell
a package named Numpy activatedTo deactivate, simply exit the shell session.
4. Customizing Virtual Environment Location
You can configure Poetry to create virtual environments in specific directories by setting the virtualenvs.in-project setting to true.
poetry config virtualenvs.in-project true
This will establish the virtual environment within your project’s root folder so that you can easily find it and control it.
Working with Virtual Environments
Once your virtual environment is set up, you can perform various tasks to manage your dependencies and project environment.
Adding Dependencies
Other related packages can be included in your project and will be installed in the virtual environment created by poetry. Let's say, you want to install Django:
poetry add django
Removing Dependencies
In case the existing dependencies are no longer required, get rid of them in your project, using the following command:
poetry remove <package-name>
Listing Dependencies
Display a list of dependencies and libraries that are installed with the application and their associated version numbers, using the following command:
poetry show
List of all installed dependenciesRunning Scripts
Run programs and perform operations in the scope of a virtual environment.
poetry run python script.py
Updating Dependencies
Add compatibility to your project dependencies with their newer versions if available.
poetry update
Conclusion
With Poetry, managing dependencies and organizing project-specific virtual environments are streamlined as the tool is designed to handle these aspects within Python. Adherence to the steps drawn here will make your Python projects cleanly separated and easy to organize and manage.
Similar Reads
Working with multiple environments in Python Poetry
Python Poetry is a comprehensive dependency management and packaging tool that specifically enhances the handling of Python projects. If compared to such tools as pip and virtualenv, Poetry gives a more precise and optimized workflow for managing different aspects of the project, both its dependenci
4 min read
Managing dependencies with Python Poetry
Managing dependencies in Python projects can be a challenging task, especially as projects grow in size and complexity. Poetry is a powerful tool designed to simplify dependency management, packaging, and publishing for Python projects. In this article, weâll explore what Poetry is, its features, an
3 min read
Environment Variables in Python
Environment variables are key-value pairs that live in our system's environment. Python reads some of these variables at startup to determine how to behave, for example, where to look for modules or whether to enter interactive mode.If thereâs ever a conflict between an environment variable and a co
3 min read
Using Poetry Dependency Management tool in Python
In this article, we are going to study the poetry dependency management tool in python which will help you to manage the libraries of your next project so it will be easy to download, install, and set up your project. What is Poetry Poetry is a python dependency management tool to manage dependencie
4 min read
Creating Python Virtual Environment in Windows and Linux
A Virtual Environment is a Python environment, that is an isolated working copy of Python that allows you to work on a specific project without affecting other projects So basically it is a tool that enables multiple side-by-side installations of Python, one for each project. Creating a Python virtu
1 min read
Context Manager in Python
Managing Resources: In any programming language, the usage of resources like file operations or database connections is very common. But these resources are limited in supply. Therefore, the main problem lies in making sure to release these resources after usage. If they are not released then it wil
5 min read
Python Falcon - Environment Setup
Falcon is a Python library renowned for its proficiency in crafting indispensable REST APIs and microservices. Capable of accommodating both the WSGI (Web Server Gateway Interface) and ASGI (Asynchronous Server Gateway Interface) standards, Falcon has gained widespread recognition since its inceptio
3 min read
How To Manage Multiple Environments With Terraform?
In today's dynamic tech ecosystem, Infrastructure as Code (IaC) has evolved into a linchpin for automating the deployment and management of infrastructure resources. Among the leading IaC tools, Terraform stands out for its versatility and robustness. One of the most critical challenges in infrastru
3 min read
Python Pyramid - Environment Setup
Python Pyramid, often simply referred to as Pyramid, is an open-source web framework used for building web applications and web services in Python. Whether you're constructing a website, or a sophisticated web application Pyramid offers the resources and adaptability to complete the task effectively
3 min read
Updating dependencies in Python Poetry
Updating dependencies in Python Poetry is straightforward and efficient, thanks to its comprehensive command-line interface and powerful dependency resolution capabilities. Regularly updating your dependencies ensures that your project benefits from the latest features, bug fixes, and security impro
3 min read