Skip to content

Commit a79d72d

Browse files
pawamoybhrutledge
andauthored
Add PDM to the list of alternatives to Pipenv (pypa#1036)
* Add PDM to the list of alternatives to Pipenv * Update source/tutorials/managing-dependencies.rst Co-authored-by: Brian Rutledge <[email protected]> * Update source/tutorials/managing-dependencies.rst Co-authored-by: Brian Rutledge <[email protected]> * Update source/tutorials/managing-dependencies.rst Co-authored-by: Brian Rutledge <[email protected]> * Update source/tutorials/managing-dependencies.rst Co-authored-by: Brian Rutledge <[email protected]> * apply suggestions Co-authored-by: Brian Rutledge <[email protected]> Co-authored-by: Brian Rutledge <[email protected]>
1 parent b63d5f6 commit a79d72d

File tree

1 file changed

+21
-20
lines changed

1 file changed

+21
-20
lines changed

source/tutorials/managing-dependencies.rst

Lines changed: 21 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,7 @@ applicable to the development and deployment of network services (including
2121
web applications), but is also very well suited to managing development and
2222
testing environments for any kind of project.
2323

24-
Developers of Python libraries, or of applications that support distribution
25-
as Python libraries, should also consider the
26-
`poetry <https://github.com/python-poetry/poetry>`_ project as an alternative dependency
27-
management solution.
24+
For alternatives, see `Other Tools for Application Dependency Management`_.
2825

2926
Installing Pipenv
3027
-----------------
@@ -161,20 +158,24 @@ Other Tools for Application Dependency Management
161158

162159
If you find this particular approach to managing application dependencies isn't
163160
working well for you or your use case, you may want to explore these other tools
164-
and techniques to see if one of them is a better fit:
165-
166-
* `poetry <https://github.com/python-poetry/poetry>`__ for a tool comparable in scope
167-
to ``pipenv`` that focuses more directly on use cases where the repository being
168-
managed is structured as a Python project with a valid ``pyproject.toml`` file
169-
(by contrast, ``pipenv`` explicitly avoids making the assumption that the
170-
application being worked on that's depending on components from PyPI will
171-
itself support distribution as a ``pip``-installable Python package).
161+
and techniques, listed in alphabetical order, to see if one of them is a better fit:
162+
172163
* `hatch <https://github.com/ofek/hatch>`_ for opinionated coverage of even
173-
more steps in the project management workflow (such as incrementing versions,
174-
tagging releases, and creating new skeleton projects from project templates)
175-
* `pip-tools <https://github.com/jazzband/pip-tools>`_ to build your own
176-
custom workflow from lower level pieces like ``pip-compile`` and ``pip-sync``
177-
* `micropipenv <https://github.com/thoth-station/micropipenv>`_ is a lightweight
178-
wrapper for pip to support requirements.txt, Pipenv and Poetry lock files or
179-
converting them to pip-tools compatible output. Designed for containerized
180-
Python applications but not limited to them.
164+
more steps in the project management workflow, such as incrementing versions,
165+
tagging releases, and creating new skeleton projects from project templates.
166+
* `micropipenv <https://github.com/thoth-station/micropipenv>`_ for a lightweight
167+
wrapper around pip that supports ``requirements.txt``, Pipenv and Poetry lock files,
168+
or converting them to pip-tools compatible output. Designed for containerized
169+
Python applications, but not limited to them.
170+
* `PDM <https://github.com/pdm-project/pdm>`_ for a modern Python package management
171+
tool supporting :pep:`582` (replacing virtual environments with ``__pypackages__``
172+
directory for package installation) and relying on standards such as :pep:`517` and
173+
:pep:`621`.
174+
* `pip-tools <https://github.com/jazzband/pip-tools>`_ for creating a lock file of all
175+
dependencies from a list of packages directly used in a project, and ensuring that
176+
only those dependencies are installed.
177+
* `Poetry <https://github.com/python-poetry/poetry>`__ for a tool comparable in scope
178+
to Pipenv that focuses more directly on use cases where the project being managed is
179+
structured as a distributable Python package with a valid ``pyproject.toml`` file.
180+
By contrast, Pipenv explicitly avoids making the assumption that the application
181+
being worked on will support distribution as a ``pip``-installable Python package.

0 commit comments

Comments
 (0)