LogoLogo
Official SiteAPI Reference
stable/3.0
stable/3.0
  • Cement Developer Guide
  • Release Information
    • What's New!
    • Upgrading
    • ChangeLog
    • Deprecations
  • Getting Started
    • Installation
    • Developer Tools
    • Framework Overview
    • Beginner Tutorial
      • Part 1: Creating Your First Project
      • Part 2: Adding Features
      • Part 3: Extending a Project
      • Part 4: Making Everything Legit
  • Core Foundation
    • Interfaces and Handlers
    • Hooks
    • Configuration Settings
    • Arguments
    • Logging
    • Controllers
    • Output Rendering
    • Caching
    • Mail Messaging
    • Framework Extensions
    • Application Plugins
    • Templating
  • Utilities
    • Filesystem
    • Shell
    • Miscellaneous
  • Extensions
    • Alarm
    • Argparse
    • Colorlog
    • ConfigParser
    • Daemon
    • Dummy
    • Generate
    • Jinja2
    • Json
    • Logging
    • Memcached
    • Mustache
    • Plugin
    • Print
    • Redis
    • Scrub
    • SMTP
    • Tabulate
    • Yaml
    • Watchdog
  • Additional Topics
    • Extending The App Object
    • Unit Testing
    • Cleanup
    • Signal Handling
    • Pipenv
    • Autocomplete
    • Profiling with cProfile
    • Debugging with VSCode
  • Environment Variables
  • Terminology
  • Contributing
  • Privacy Policy
Powered by GitBook
On this page
  • Introduction to Pipenv
  • Installing Pipenv
  • Using Pipenv With Cement
  1. Additional Topics

Pipenv

PreviousSignal HandlingNextAutocomplete

Last updated 2 years ago

Introduction to Pipenv

From the :

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.

Pipenv documentation