Pipenv, a brand-new experimental tool, is offered as a packaging panacea for Python developers.
Developed over last weekend, the tool is intended to bring the "best of all packaging worlds" to Python, harnessing PipFile, Pip, and Virtualenv into a single toolchain, according to developer Kenneth Reitz, who works in Python-related product development at cloud provider Heroku.
"It vastly simplifies the workflow for working on Python projects," Reitz said. The project's GitHub repo describes the tool as providing a "sacred marriage" of the three packaging technologies.
Pipenv creates and manages a Virtualenv isolated environment for projects and adds or removes packages from a Pipfile as developers install and uninstall packages. Reitz said that although the tool is production-ready now, many changes should be expected as interest grows, and he's taking community feedback.
A multitude of other tasks are done automatically by Pipenv, including finding the project home by looking for a Pipfile and generating a Pipfile if there isn't one already, generating a Pipfile.lock, and updating Pip. "The main commands are
lock, which generates a Pipfile.lock, Reitz said. "These are intended to replace
$ Pip install usage, as well as manual virtualenv management." To use a Python 3 virtual environment, developers must run
$ pipenv --three first. For Python 2, run
$ pipenv --two first. Pipenv is offered under an MIT license.
Python's ambitions have included packaging improvements. To that end, Pipfile has been proposed as a replacement for Pip, allowing descriptions of more specific dependencies with a Python package but with drawbacks of its own. The concept of an enterprise-grade Python package index also has arisen.