Introduction
Dependency management in Python is an important component of software development because it entails managing the libraries and packages required by a project. Proper dependency management ensures that the necessary dependencies are installed, conflicts are avoided, and the project is reproducible across different environments.
Concepts
- Dependencies 
 Dependencies are external libraries or modules that a project relies on to function. These can range from standard libraries included with Python to third-party packages available on repositories like PyPI (Python Package Index).
- 
Dependency Management Tools 
 Include tools such as:- pip: The default package installer for Python.Uses requirements.txt to list dependencies and their versions.
- virtualenv: Creates isolated Python environments to manage dependencies for different projects independently.
- venv: Provides similar functionality to virtualenv but is built into Python.
- conda: A package manager and environment management system that supports multiple languages.
- poetry: A modern tool for dependency management and packaging.Uses pyproject.toml to specify project configurations and dependencies.
 
Poetry
Poetry is a tool for dependency management and packaging in Python. It allows you to declare the libraries your project depends on and it will manage (install/update) them for you. Poetry offers a lockfile to ensure repeatable installs, and can build your project for distribution.
Pyproject.toml file
pyproject.toml is a configuration file used by packaging tools such as poetry.
example
[tool.poetry]
name = "poetry-test"
version = "0.2.0"
description = ""
authors = ["None"]
readme = "README.md"
[tool.poetry.dependencies]
python = "^3.12"
requests = "^2.30.0"
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"
Installation
Poetry requires Python 3.8+
- Linux,macOS
curl -sSL https://install.python-poetry.org | python3 -
- Windows(Poweshell)
(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | py -
- Add Poetry to your PATH(Environment Variables)
Add the following paths to PATH variable depending on your system.
$HOME/.local/bin on Unix.
%APPDATA%\Python\Scripts on Windows.
poetry --version: verify that poetry is installed correctly and added to $PATH.
Usage
poetry new <package name>: starts a new Python project by creating a new directory with a standard Python project structure.
new-package
  new-package
      __init__.py
  tests
      __init__.py
  pyproject.toml
  README.md   
poetry init: Initializes a directory by prompting you to provide details about your project and its dependencies interactively. 
poetry config virtualenvs.in-project true: create virtual environments inside the project's directory.Poetry by default will create a virtual environment under {cache-dir}/virtualenvs.
poetry shell : activate the virtual environment created.
poetry add <django>: adds a dependency to your project.This will add django to your pyproject.toml file and install django.
# Allow >=2.0.0, <3.0.0 versions i.e minor version
poetry add requests^2.0.0
# Allow >=2.0.0, <2.1.0 versions i.e patch versions
poetry add requests~2.0.0
# Allow only a specific version
poetry add requests==2.0.0 | poetry add requests@2.0.0
poetry add --dev <pytest>: add dependencies only needed in development.Pytest will be added as a development dependency.
poetry remove <package name>: removes a package from the current list of installed packages.
poetry show: list all the available packages.
poetry show <package name>: list details about a specific package.
poetry version: shows the current version of the project.
poetry version <patch|minor|major>:  bumps the version of the project and writes to pyproject.toml.
poetry list: displays all the available Poetry commands.
poetry install: reads the pyproject.toml file from the current project, resolves the dependencies, and installs them.
Commands
Importing existing requirements.txt file to poetry
pyproject file
 

 
    
Top comments (0)