stable/3.0
Search
K
Links

Pipenv

Introduction to Pipenv

Pipenv is a tool that aims to bring the best of all packaging worlds (bundler, composer, npm, cargo, yarn, etc.) to the Python world. Windows is a first-class citizen, in our world.
It automatically creates and manages a virtualenv for your projects, as well as adds/removes packages from your Pipfile as you install/uninstall packages. It also generates the ever-important Pipfile.lock, which is used to produce deterministic builds.
Cement maintainers do not currently use Pipenv, therefore this documentation is here as a helper. Future versions of Cement may include Pipenv configurations out-of-the-box (but do not currently).

Installing Pipenv

Pipenv can be installed via Pip:
pip install pipenv

Using Pipenv With Cement

First install Cement, and generate a project:
pip install cement
cement generate project ./myapp
In the generated ./myapp directory:
### setup requirements
pipenv install -r requirements.txt
### setup requirements for dev
pipenv install -r requirements-dev.txt --dev
This will create the Pipfile and ./Pipfile.lock. You will then need to modify Pipfile to include the application console script:
[scripts]
myapp = "python -m myapp.main"
Your app can then be run under pipenv:
pipenv run myapp --help
You can then remove the requirements.txt and requirements-dev.txt if no longer needed.