|
1 | | -A summary of package management tools in the Python ecosystem |
| 1 | +An interactive web app to explore, and hopefully better understand, Python packaging tools. |
2 | 2 |
|
3 | | -## tools |
4 | | - |
5 | | -| | poetry | pipenv | pip | virtualenv | setup.py (setuptools) | twine | pyenv | pipsi | |
6 | | -|--------------------------------------------------------------------------------------------|------------------------------------------|----------------------------------------------------|--------------------------|------------------------------------|------------------------------------------------------------------|---------------------------------------------------------|---------------------------|--------------------------------| |
7 | | -| installs abstract dependencies | ✔️ | ✔️ | ✔️ | ✖️ | ✔️ | ✖️ | ✖️ | ✖️ | |
8 | | -| installs concrete dependencies | ✔️ | ✔️ | ✔️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | |
9 | | -| isolates Python environments | ✔️ | ✔️ | ✖️ | ✔️ | ✖️ | ✖️ | ✖️ | ✔️ | |
10 | | -| captures packaging metadata (name, version, author, etc) | ✔️ | ✖️ | ✖️ | ✖️ | ✔️ | ✖️ | ✖️ | ✖️ | |
11 | | -| file format based on a PEP | ✔️ | ✖️ | ✖️ | ✖️ | ✔️ | ✖️ | ✖️ | ✖️ | |
12 | | -| automatically creates virtual environments | ✔️ | ✔️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | |
13 | | -| generates concrete dependencies from abstract dependencies (requirements.txt or lock file) | ✔️ | ✔️ | ✔️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | |
14 | | -| can generate lock file with hashes | ✔️ | ✔️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | |
15 | | -| builds packages suitable for distribution on PyPI | ✔️ | ✖️ | ✖️ | ✖️ | ✔️ | ✖️ | ✖️ | ✖️ | |
16 | | -| publishes packages to PyPI | ✔️ | ✖️ | ✖️ | ✖️ | ✖️ | ✔️ | ✖️ | ✖️ | |
17 | | -| can enter shell for virtual environment | ✖️ | ✔️ | ✖️ | ✔️ | ✖️ | ✖️ | ✖️ | ✖️ | |
18 | | -| installs specific Python versions to system | ✖️ | ✔️ | ✖️ | ✖️ | ✖️ | ✖️ | ✔️ | ✖️ | |
19 | | -| globally installs and sandboxes Python packages that have command-line entry points | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✔️ | |
20 | | -| relies on | virtualenv | virtualenv, pew, pip-tools, requirementslib, pyenv | - | pip, shell scripts | setuptools | - | shell scripts | virtualenv | |
21 | | -| 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 | |
22 | | - |
23 | | - |
24 | | -## File formats |
25 | | - |
26 | | -| | requirements.txt | Pipfile | Pipfile.lock | pyproject.toml | pyproject.lock |setup.py |
27 | | -|-------------------|-------------------|----------------------|----------------------|----------------|----------------------|-| |
28 | | -| purpose | todo | | | | | | |
29 | | -| metadata captured | todo | | | | | | |
30 | | -| origin | convention of pip | convention of Pipenv | convention of Pipenv | PEP 518 | convention of Poetry | todo | |
31 | | - |
32 | | - |
33 | | - |
34 | | -Disclaimer: I did not author or maintain any of these tools and strive to keep this list as impartial as possible. |
35 | | - |
36 | | -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. |
| 3 | +https://grassfedcode.com/python-packaging |
0 commit comments