Introduction to Pipenv

From the Pipenv documentation:

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:

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.

Last updated