Skip to content

Commit 75966b1

Browse files
committed
add "relies on" and stated purpose; add file formats
1 parent 6f13009 commit 75966b1

File tree

1 file changed

+30
-15
lines changed

1 file changed

+30
-15
lines changed

README.md

Lines changed: 30 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,35 @@
11
A summary of package management tools in the Python ecosystem
22

3-
| | poetry | pipenv | pip | virtualenv | setup.py | twine | pyenv | pipsi |
4-
|------------------------------------------------------------------------|--------|--------|-----|------------|----------|-------|-------|-------|
5-
| installs abstract dependencies | ✔️ | ✔️ | ✔️ | ✖️ | ✔️ | ✖️ | ✖️ | ✖️ |
6-
| installs concrete dependencies | ✔️ | ✔️ | ✔️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
7-
| isolates Python environments | ✔️ | ✔️ | ✖️ | ✔️ | ✖️ | ✖️ | ✖️ | ✔️ |
8-
| captures packaging metadata (name, version, author, etc) | ✔️ | ✖️ | ✖️ | ✖️ | ✔️ | ✖️ | ✖️ | ✖️ |
9-
| file format based on a PEP | ✔️ | ✖️ | ✖️ | ✖️ | ✔️ | ✖️ | ✖️ | ✖️ |
10-
| automatically creates virtual environments | ✔️ | ✔️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
11-
| generates concrete dependencies from abstract dependencies (requirements.txt or lock file) | ✔️ | ✔️ | ✔️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
12-
| can generate lock file with hashes | ✔️ | ✔️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ |
13-
| builds packages suitable for distribution on PyPI | ✔️ | ✖️ | ✖️ | ✖️ | ✔️ | ✖️ | ✖️ | ✖️ |
14-
| publishes packages to PyPI | ✔️ | ✖️ | ✖️ | ✖️ | ✖️ | ✔️ | ✖️ | ✖️ |
15-
| can enter shell for virtual environment | ✖️ | ✔️ | ✖️ | ✔️ | ✖️ | ✖️ | ✖️ | ✖️ |
16-
| installs specific Python versions to system | ✖️ | ✔️ | ✖️ | ✖️ | ✖️ | ✖️ | ✔️ | ✖️ |
17-
| globally installs and sandboxes Python packages that have command-line entry points | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✖️ | ✔️ |
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+
1833

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

0 commit comments

Comments
 (0)