A summary of package management tools in the Python ecosystem
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
LICENSE
README.md

README.md

A summary of package management tools in the Python ecosystem

tools

poetry pipenv pip virtualenv setup.py (setuptools) twine pyenv pipsi
installs abstract dependencies ✔️ ✔️ ✔️ ✖️ ✔️ ✖️ ✖️ ✖️
installs concrete dependencies ✔️ ✔️ ✔️ ✖️ ✖️ ✖️ ✖️ ✖️
isolates Python environments ✔️ ✔️ ✖️ ✔️ ✖️ ✖️ ✖️ ✔️
captures packaging metadata (name, version, author, etc) ✔️ ✖️ ✖️ ✖️ ✔️ ✖️ ✖️ ✖️
file format based on a PEP ✔️ ✖️ ✖️ ✖️ ✔️ ✖️ ✖️ ✖️
automatically creates virtual environments ✔️ ✔️ ✖️ ✖️ ✖️ ✖️ ✖️ ✖️
generates concrete dependencies from abstract dependencies (requirements.txt or lock file) ✔️ ✔️ ✔️ ✖️ ✖️ ✖️ ✖️ ✖️
can generate lock file with hashes ✔️ ✔️ ✖️ ✖️ ✖️ ✖️ ✖️ ✖️
builds packages suitable for distribution on PyPI ✔️ ✖️ ✖️ ✖️ ✔️ ✖️ ✖️ ✖️
publishes packages to PyPI ✔️ ✖️ ✖️ ✖️ ✖️ ✔️ ✖️ ✖️
can enter shell for virtual environment ✖️ ✔️ ✖️ ✔️ ✖️ ✖️ ✖️ ✖️
installs specific Python versions to system ✖️ ✔️ ✖️ ✖️ ✖️ ✖️ ✔️ ✖️
globally installs and sandboxes Python packages that have command-line entry points ✖️ ✖️ ✖️ ✖️ ✖️ ✖️ ✖️ ✔️
relies on virtualenv virtualenv, pew, pip-tools, requirementslib, pyenv - pip, shell scripts setuptools - shell scripts virtualenv
stated purpose dependency management and packaging tool development workflow tool Python package installer Python virtual environment builder download, build, install, upgrade, and uninstall Python packages Collection of utilities for publishing packages on PyPI python version management global Python script installer

File formats

requirements.txt Pipfile Pipfile.lock pyproject.toml pyproject.lock setup.py
purpose todo
metadata captured todo
origin convention of pip convention of Pipenv convention of Pipenv PEP 518 convention of Poetry todo

Disclaimer: I did not author or maintain any of these tools and strive to keep this list as impartial as possible.

This information is accurate to the best of my knowledge. If anything is incorrect or missing please submit a pull request or create an issue.