A Python tool that packages applications and their dependencies into single executable .pex files, similar to a portable virtualenv.
pypa/pipenv
A Python virtualenv and dependency management tool that combines pip and virtualenv, using Pipfile and Pipfile.lock for reproducible builds.
- Stars
- 25,020
- Forks
- 1,888
- Open issues
- 8
- Last commit
- yesterday
What is it?
Pipenv is a Python tool for managing project virtual environments and dependencies. It automatically creates a virtualenv for each project and adds or removes packages from a Pipfile as you install or uninstall them, so pip and virtualenv no longer need to be used separately.
Dependencies are declared in a Pipfile and resolved into a Pipfile.lock, which records the exact tested versions and file hashes. Hashes are verified on install, and the lock file supports deterministic builds. Commands such as graph, check, and requirements cover dependency inspection, vulnerability checks, and exporting a requirements.txt.
Pipenv runs on Linux, macOS, and Windows, and can install required Python versions when pyenv or asdf is available. It also loads .env files automatically and provides shell completion for bash, zsh, and fish.
Key features
- 01Generates Pipfile.lock with file hashes for deterministic installs.
- 02Automatically creates and manages a virtualenv per project.
- 03Adds or removes packages in Pipfile as you install or uninstall them.
- 04Installs required Python versions via pyenv or asdf.
- 05Shows dependency graphs and checks for known security vulnerabilities.
- 06Loads .env files and supports shell completion.
Use cases
- Managing dependencies and virtualenvs for a Python application project.
- Replacing a requirements.txt workflow with a lock file that pins tested versions.
- Keeping development dependencies separate from production packages.
- Onboarding teammates to a consistent project environment across operating systems.
Quick start
- 1
Install Pipenv with pip
pip install --user pipenv - 2
Install a package into a project virtualenv (creates it automatically)
pipenv install requests - 3
Spawn a shell inside the project virtualenv
pipenv shell
Things to know
- Installation and workflow details vary by platform and package manager, and the documentation is the reference for latest instructions.
- Pipenv requires Python 3.11 or newer.
Topics
FAQ
- What is pipenv?
- A Python virtualenv and dependency management tool that combines pip and virtualenv, using Pipfile and Pipfile.lock for reproducible builds. Pipenv is a Python tool for managing project virtual environments and dependencies. It automatically creates a virtualenv for each project and adds or removes packages from a Pipfile as you install or uninstall them, so pip and virtualenv no longer need to be used separately.
- Is pipenv free to use? What license does it have?
- pipenv is open source under the MIT license. Check the license terms before using it in commercial products.
- Is pipenv still maintained?
- Actively maintained. The last commit to pipenv was on Nov 5, 2026.
- What can I use pipenv for?
- Managing dependencies and virtualenvs for a Python application project. Replacing a requirements.txt workflow with a lock file that pins tested versions. Keeping development dependencies separate from production packages. Onboarding teammates to a consistent project environment across operating systems.
- How do I install pipenv?
- Install Pipenv with pip: pip install --user pipenv Install a package into a project virtualenv (creates it automatically): pipenv install requests Spawn a shell inside the project virtualenv: pipenv shell
- Where can I get pipenv?
- The source code and installation instructions are on GitHub: https://github.com/pypa/pipenv
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A Python launcher that installs packages into a temporary environment for a single run, then discards them.
An extremely fast Python package and project manager written in Rust, replacing pip, virtualenv, pyenv, pipx and more.
A set of command-line tools (pip-compile and pip-sync) that pin Python dependencies into reproducible requirements files and keep environments in sync with them.
The standard package installer for Python, used to install packages from the Python Package Index (PyPI) and other indexes.
Command-line tool for inspecting, unpacking, repacking and retagging Python wheel (.whl) files, and converting eggs to wheels.