Requirements file
pip supports installing from PyPI, version control, local projects, and directly from distribution files.
The most common scenario is to install from PyPI using Requirement Specifiers "Requirements files" are files containing a list of items to be installed using pip install like so:
pip install -r requirements.txt
Logically, a Requirements file is just a list of pip install arguments placed in a file. Note that you should not rely on the items in the file being installed by pip in any particular order.
Ex of a requirements.txt file
django-redis-cache==1.7.1
xlrd==1.1.0
hiredis==0.2.0
django-admin-rangefilter=0.3.1
Poetry
Python dependency management and packaging made easy.
poetry is a tool to handle dependency installation as well as building and packaging of Python packages. It only needs one file to do all of that: the new, standardized pyproject.toml
In other words, poetry uses pyproject.toml
to replace setup.py, requirements.txt, setup.cfg, MANIFEST.in
and the newly added Pip file
Features
- It will try to enforce semantic versioning as the best practice in version naming.
- You can specify the readme, included and excluded files: no more MANIFEST.in. poetry will also use VCS ignore files (like
.gitignore
) to populate the exclude section. - Keywords (up to 5) can be specified and will act as tags on the packaging site.
- The dependencies sections support caret, tilde, wildcard, inequality and multiple requirements.
- You must specify the python versions for which your package is compatible.
poetry will also detect if you are inside a virtual env
and install the packages accordingly. So, poetry can be installed globally and used everywhere.
poetry also comes with a full fledged dependency resolution library.
Commands
poetry config virtualenvs.in-project true
poetry install
# running test cases
poetry shell
pytest
# to see all test cases
pytest -v
https://github.com/python-poetry/poetry
https://python-poetry.org/docs
setup.py and mainfest.ini
https://flask.palletsprojects.com/en/0.12.x/tutorial/packaging/#tutorial-packaging
Others
UV
- 🚀 A single tool to replace
pip
,pip-tools
,pipx
,poetry
,pyenv
,twine
,virtualenv
, and more. - ⚡️ 10-100x faster than
pip
. - 🐍 Installs and manages Python versions.
- 🛠️ Runs and installs Python applications.
- ❇️ Runs single-file scripts, with support for inline dependency metadata.
- 🗂️ Provides comprehensive project management, with a universal lockfile.
- 🔩 Includes a pip-compatible interface for a performance boost with a familiar CLI.
- 🏢 Supports Cargo-style workspaces for scalable projects.
- 💾 Disk-space efficient, with a global cache for dependency deduplication.
- ⏬ Installable without Rust or Python via
curl
orpip
. - 🖥️ Supports macOS, Linux, and Windows.
- GitHub - astral-sh/uv: An extremely fast Python package and project manager, written in Rust.