An excerpt from the repository, fetched Nov 13, 2026.
Read the project’s introduction
Pipenv: Python Development Workflow for Humans
Pipenv is a Python virtualenv management tool that supports a multitude of systems and nicely bridges the gaps between pip, python (using system python, pyenv or asdf) and virtualenv.
Linux, macOS, and Windows are all first-class citizens in pipenv.
Pipenv 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 a project Pipfile.lock, which is used to produce deterministic builds.
Pipenv is primarily meant to provide users and developers of applications with an easy method to arrive at a consistent working project environment.
The problems that Pipenv seeks to solve are multi-faceted:
You no longer need to use pip and virtualenv separately: they work together.
Managing a requirements.txt file with package hashes can be problematic. Pipenv uses Pipfile and Pipfile.lock to separate abstract dependency declarations from the last tested combination.
Hashes are documented in the lock file which are verified during install. Security considerations are put first.
Strongly encourage the use of the latest versions of dependencies to minimize security risks arising from outdated components.
Gives you insight into your dependency graph (e.g. $ pipenv graph).
Streamline development workflow by supporting local customizations with .env files.
Table Of Contents
Pipenv
Installation
Features
Basic Concepts
Other Commands
Shell Completion
Usage
Usage Examples
Commands
Locate the Project
Locate the virtualenv
Locate the Python Interpreter
Install Packages
Installing from git
Install a dev dependency
Show a dependency graph
Generate a lockfile
Install all dev dependencies
Uninstall everything
Use the shell
Documentation
Installation
Pipenv can be installed with Python 3.11 and above, including Python 3.15.
For most users, we recommend installing Pipenv using pip:
pip install --user pipenv
Or, if you're using FreeBSD:
pkg install py39-pipenv
Or, if you're using Gentoo:
sudo emerge pipenv
Or, if you're using Void Linux:
sudo xbps-install -S python3-pipenv
Alternatively, some users prefer to use Pipx:
pipx install pipenv
Or, some users prefer to use Python pip module.
python -m pip install pipenv
Refer to the documentation for latest instructions.
✨🍰✨
Features
Enables truly deterministic builds, while easily specifying only
what you want.
Generates and checks file hashes for locked dependencies.
Automatically install required Pythons, if pyenv or asdf is available.
Automatically finds your project home, recursively, by looking for a
Pipfile.
Automatically generates a Pipfile, if one doesn't exist.
Automatically creates a virtualenv in a standard location.
Automatically adds/removes packages to a Pipfile when they are installed/uninstalled.
Automatically loads .env files, if they exist.
For command reference, see Commands.
Basic Concepts
A virtualenv will automatically be created, when one doesn't exist.
When no parameters are passed to install, all packages
[packages] specified will be installed.
Otherwise, whatever virtualenv defaults to will be the default.
Shell Completion
Shell completion is powered by argcomplete.
Install the optional dependency first:
pip install "pipenv[completion]"
For fish, add this to ~/.config/fish/completions/pipenv.fish:
register-python-argcomplete --shell fish pipenv | source
There is also a fish plugin, which will automatically
activate your subshells for you!
For zsh, add this to your ~/.zshrc:
autoload -U bashcompinit
bashcompinit
eval "$(register-python-argcomplete pipenv)"
For bash (including Git Bash on Windows), add this to ~/.bashrc or ~/.bash_profile:
eval "$(register-python-argcomplete pipenv)"
Then reload your shell, and tab completions are enabled!
Note: If you are upgrading from pipenv < 2026.5.0, the old
_PIPENV_COMPLETE environment variable method no longer works.
Replace it with the register-python-argcomplete commands above.
See the Shell Completion docs
for details.
Usage
$ pipenv --help
Usage: pipenv [OPTIONS] COMMAND [ARGS]...
Options:
--where Output project home information.
--venv Output virtualenv information.
--py Output Python interpreter information.
--envs Output Environment Variable options.
--rm Remove the virtualenv.
--bare Minimal output.
--man Display manpage.
--support Output diagnostic information for use in
GitHub issues.
--site-packages / --no-site-packages
Enable site-packages for the virtualenv.
[env var: PIPENV_SITE_PACKAGES]
--python TEXT Specify which version of Python virtualenv
should use.
--clear Clears caches (pipenv, pip). [env var:
PIPENV_CLEAR]
-q, --quiet Quiet mode.
-v, --verbose Verbose mode.
--pypi-mirror TEXT Specify a PyPI mirror.
--version Show the version and exit.
-h, --help Show this message and exit.
Usage Examples:
Create a new project using Python 3.7, specifically:
$ pipenv --python 3.7
Remove project virtualenv (inferred from current directory):
$ pipenv --rm
Install all dependencies for a project (including dev):
$ pipenv install --dev
Create a lockfile containing pre-releases:
$ pipenv lock --pre
Show a graph of your installed dependencies:
$ pipenv graph
Check your installed dependencies for security vulnerabilities:
$ pipenv check
Install a local setup.py into your virtual environment/Pipfile:
$ pipenv install -e .
Use
Read the full README on GitHub