NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #1178 most downloaded on PyPI
Python Development Workflow for Humans.
Last release 1 months ago
20 Aug 2026
Release timing varies
gaps range from 1 weeks to 5 months
Some releases are documented
notes for 24 of the last 60 stable releases
3 versions withdrawn
withdrawn after publishing
10 years old
421 releases · first in 2017
Patch _get_requests_session method to consider PIP_CLIENT_CERT value when present. #5746
_get_requests_session method to consider PIP_CLIENT_CERT value when present. #5746requirements command that was causing package installs after upgrade to requirementslib==3.0.0. #5755error: invalid command 'egg_info' edge case with requirementslib 3.0.0. It exposed pipenv resolver sometimes was using a different python than expected. #5760Add missing environment variable descriptions back to documentation #missing_env_var_desc
One column per quarter.
Deprecation of --skip-lock flag as it bypasses the security benefits of pipenv. Plus it lacks proper deterministic support of installation from multip…
pipenv. #5737--skip-lock flag as it bypasses the security benefits of pipenv. Plus it lacks proper deterministic support of installation from multiple package indexes. #5737Remove the sys.path modifications and as a result fixes keyring support. #5719
sys.path modifications and as a result fixes keyring support. #5719Upgrades to pipdeptree==2.8.0 which fixes edge cases of the pipenv graph command. #5720
pipdeptree==2.8.0 which fixes edge cases of the pipenv graph command. #5720Resolver performance: package sources following PEP 503 will leverage package hashes from the URL fragment, without downloading the package. #5701
pythonfinder==2.0.4 with fix for "RecursionError: maximum recursion depth exceeded". #5709Consider --index argument in update and upgrade commands. #5692
Vendor in pip==23.1.2 latest. #5671
Checks environment variable PIP_TRUSTED_HOSTS when evaluating an index specified at the command line when adding to Pipfile.
Checks environment variable PIP_TRUSTED_HOSTS when evaluating an
index specified at the command line when adding to Pipfile.
For example, this command line
PIP_TRUSTED_HOSTS=internal.mycompany.com pipenv install pypkg --index=https://internal.mycompany.com/pypi/simple
will add the following to the Pipfile:
[[source]]
url = 'https://internal.mycompany.com/pypi/simple'
verify_ssl = false
name = 'Internalmycompany'
[packages]
pypkg = {version="*", index="Internalmycompany"}
This allows users with private indexes to add them to Pipfile
initially from command line with correct permissions using environment
variable PIP_TRUSTED_HOSTS. #5572
Vendor in the updates, upgrades and fixes provided by pip==23.1. #5655
--skip-lock option with install command. #5653python-dotenv==1.0.0 #5656attrs==23.1.0 click-didyoumean==0.3.0 click==8.1.3 markupsafe==2.1.2 pipdeptree==2.7.0 shellingham==1.5.0.post1 tomlkit==0.11.7 #5657requirementslib==2.2.5 which includes updates for pip 23.1 #5659No significant changes.
No significant changes.
Fix import error in virtualenv utility for creating new environments caused by 2023.3.18 release. #5636
2023.3.18 release. #5636pipenv now reads the system pip.conf or pip.ini file in order to determine pre-defined indexes to use for package resolution and installation. #5297
pipenv now reads the system pip.conf or pip.ini file in order to determine pre-defined indexes to use for package resolution and installation. #5297pipenv check now checks the default packages group of the lockfile.
Specifying --categories to override which categories to check against.
Pass --use-installed to get the prior behavior of checking the packages actually installed into the environment. #5600CI env variable being set to something other than a truthy value. #5554--categories argument inconsistency between requirements command and install/sync by allowing comma separated values or spaces. #5570pipenv shell. #5603pip==23.0 release. #5586pip==23.0.1 minor pt release. Updates pythonfinder==1.3.2. #5614Remove deprecated --three flag from the CLI. #5576
Fix for requirementslib hanging during install of remote wheels files. #5546
requirementslib hanging during install of remote wheels files. #5546virtualenv creation no longer uses --creator=venv by default; introduced two environment variables: PIPENV_VIRTUALENV_CREATOR -- May be specified to i
--creator=venv by default; introduced two environment variables:
PIPENV_VIRTUALENV_CREATOR -- May be specified to instruct virtualenv which --creator= to use.
PIPENV_VIRTUALENV_COPIES -- When specified as truthy, instructs virtualenv to not use symlinks. #5477path is not propagated to the Pipfile.lock. #5479update --outdated raises NonExistentKey with outdated dev packages #5540Fix regression: pipenv does not sync indexes to lockfile. #5508
Solving issue where pipenv check command has been broken in the published wheel distribution. #5493
pipenv check command has been broken in the published wheel distribution. #5493Nothing published for this version
Stop building universal wheels since Python 2 is no longer supported. #5496
Find nushell activate scripts. #5470
Fix regression of lock generation that caused the keep-outdated behavior to be default. #5456
Rollback the change in version of colorama due to regressions in core functionality. #5459
colorama due to regressions in core functionality. #5459Allow pipenv settings to be explicitly disabled more easily by assigning to the environment variable a falsy value. #5451
install_search_all_sources is false (default behavior).
This fixes regression where install phase was using unexpected index after updating pip==22.3 #5444Add support to export requirements file for a specified set of categories. #5431
Nothing published for this version
Update pipenv docs for with example for callabale package functions in Pipfile scripts #5396
Revert decision to change the default isolation level because it caused problems with existing workflows; solution is to recommend users that have iss
Add ability for callable scripts in Pipfile under \[scripts\]. Callables can now be added like: : and can also take arguments. For example: func = {ca
<pathed.module>:<func> and can also take arguments. For example: func = {call = "package.module:func('arg1', 'arg2')"} then this can be activated in the shell with pipenv run func #52942022.10.9 where Pipfile with pipenv section began generating new hash,
and also fix regression where lock phase did not update the hash value. #5394New pipfiles show python_full_version under \[requires\] if specified. Previously creating a new pipenv project would only specify in the Pipfile the
pipenv run pytest --markersUse --creator=venv when creating virtual environments to avoid issue with sysconfig posix_prefix on some systems. #5075
--creator=venv when creating virtual environments to avoid issue with sysconfig posix_prefix on some systems. #5075Update requirementslib==2.0.3 to always evaluate the requirement markers fresh (without lru_cache) to fix marker determinism issue. #4660
requirementslib==2.0.3 to always evaluate the requirement markers fresh (without lru_cache) to fix marker determinism issue. #4660Fix regression to install --skip-lock with update to plette. #5368
install --skip-lock with update to plette. #5368Remove usage of pipfile module in favour of Plette. pipfile is not actively maintained anymore. Plette is actively maintained, and has stricter checki
Remove usage of pipfile module in favour of Plette. pipfile is not actively maintained anymore. Plette is actively maintained, and has stricter checking of the Pipefile and Pipefile.lock. As a result, Pipefile with unnamed package indices will fail to lock. If a Pipefile was hand crafeted, and the source is anonymous an error will be thrown. The solution is simple, add a name to your index, e.g, replace:
[[source]]
url = "https://pypi.acme.com/simple"
verify_ssl = true
With:
[[source]]
url = "https://pypi.acme.com/simple"
verify_ssl = true
name = acmes_private_index `#5339 <https://github.com/pypa/pipenv/issues/5339>`_
pipenv path patch with importlib.util to eliminate import of pkg_resources #5349Add deprecation warning to the --three flag. Pipenv now uses python3 by default. #5328
pip install by supplying --extra-pip-args="<arg1> <arg2>"
See the updated documentation Supplying additional arguments to pip for more details. #5283PIPENV_CUSTOM_VENV_NAME is more useful across projects. #5334pypiserver as a standalone process for all tests that referencce internal pypi artifacts.
General refactoring of some test cases to create more variety in packages selected--preferring lighter weight packages--in existing test cases.Fix the issue from 2022.9.2 where tarball URL packages were being skipped on batch_install. #5306
2022.9.2 where tarball URL packages were being skipped on batch_install. #5306Fix issue where unnamed constraints were provided but which are not allowed by pip resolver. #5273
pip resolver. #5273Performance optimization to batch_install results in a faster and less CPU intensive pipenv sync or pipenv install experience. #5301
batch_install results in a faster and less CPU intensive pipenv sync or pipenv install experience. #5301pipenv now uses a NamedTemporaryFile for rsolver constraints and drops internal env var PIPENV_PACKAGES. #4925Fix an issue when using pipenv install --system on systems that having the python executable pointing to Python 2 and a Python 3 executable being pyth
pipenv install --system on systems that having the python executable pointing to Python 2 and a Python 3 executable being python3. #5296constraints before resolving, which fixes pipenv lock generates nondeterminism environment markers. #5299requirementslib==2.0.1 which fixes issue with local install not marked editable, and vendor in vistir==0.6.1 which drops python2 support.
Drops orderedmultidict from vendoring. #5308Remove eager and unnecessary importing of setuptools and pkg_resources to avoid conflict upgrading setuptools. Roll back sysconfig patch of pip becaus
setuptools and pkg_resources to avoid conflict upgrading setuptools.
Roll back sysconfig patch of pip because it was problematic for some --system commands. #5228Fix issue where resolver is provided with install_requires constraints from setup.py that depend on editable dependencies and could not resolve them.
install_requires constraints from setup.py that depend on editable dependencies and could not resolve them. #5271pipenv lock fails for packages with extras as of 2022.8.13. #5274BAD_PACKAGES from batch_install in order for pipenv to install specific versions of setuptools.
To prevent issue upgrading setuptools this patches _USE_SYSCONFIG_DEFAULT to use sysconfig for 3.7 and above whereas pip default behavior was 3.10 and above. #5275Fix "The Python interpreter can't be found" error when running pipenv install --system with a python3 but no python. #5261
pipenv install --system with a python3 but no python. #5261pipenv from site-packages and removed --ignore-installed argument from pip install in order to fix regressions with --use-site-packages. #5265pip_install method was using a different way of finding the python executable than other pipenv commands, which caused an issue with skipping package
pip_install method was using a different way of finding the python executable than other pipenv commands, which caused an issue with skipping package installation if it was already installed in site-packages. #5254Removed packaging library from BAD_PACKAGES constant to allow it to be installed, which fixes regression from pipenv==2022.8.13. #5247
packaging library from BAD_PACKAGES constant to allow it to be installed, which fixes regression from pipenv==2022.8.13. #5247The deprecated way of generating requirements install -r or lock -r has been removed in favor of the pipenv requirements command. #5200
CI or TF_BUILD is set but does not evaluate to False it is now treated as True. #5128pipenv commands that were still referencing the user or system installed pip to use the vendored pip internal to pipenv. #5229packages as constraints when locking dev-packages in Pipfile.
Use packages as constraints when installing new dev-packages. #5234pip update 22.2.2 #5230install -r or lock -r has been removed in favor of the pipenv requirements command. #5200Write output from subprocess_run directly to stdout instead of creating temporary file. Remove deprecated distutils.sysconfig, use sysconfig. #5210
pip_shims from the non vendored pipenv code, but retain initialization for requirementslib still has usages. #5204red in exception when getting hashes from pypi in _get_hashes_from_pypi. #5206subprocess_run directly to stdout instead of creating temporary file.
Remove deprecated distutils.sysconfig, use sysconfig. #5210notpip to pip in order to be clear that its a patched version of pip.pip, even for all types of installs.pip==22.2pipdeptree to not use pip-shims #5188urllib3 in favor of using it from vendored version in pip._vendor #5215Support ANSI NO_COLOR environment variable and deprecate PIPENV_COLORBLIND variable, which will be removed after this release. #5158
NO_COLOR environment variable and deprecate PIPENV_COLORBLIND variable, which will be removed after this release. #5158no_deps for all other requirements in the loop causing a retry condition. #5164requirementslib for fix to lock when using editable VCS module with specific @ git reference. #5179pip==22.1.2 which upgrades pipenv from pip==22.0.4.
Vendor in latest version of requirementslib==1.6.7 which includes a fix for tracebacks on encountering Annotated variables.
Vendor in latest version of pip-shims==0.7.3 such that imports could be rewritten to utilize packaging from vendor'd pip.
Drop the packaging requirement from the vendor directory in pipenv. #5147normailze-charset. #5161funcsigs. #5168pyparsing==3.0.9. #5170…an at sign (@) in the path, and a setuptools deprecation warning. #5132
pipenv requirements to add markers and add an --exclude-markers option to allow the exclusion of markers. #5092pipenv requirements #5134requests and certifi from vendored pip and remove them as explicit vendor dependencies. #5000requirementslib==1.6.5 which includes bug fixes for beta python versions, projects with an at sign (@) in the path, and a setuptools deprecation warning. #5132Nothing published for this version
Fixes issue of pipenv lock -r command printing to stdout instead of stderr. #5091
pipenv lock -r command printing to stdout instead of stderr. #5091Vendor in requirementslib==1.6.4 to Fix SetuptoolsDeprecationWarning setuptools.config.read_configuration became deprecated. #5081
requirements command problem by modifying to print -e and path of the editable package. #5070setuptools requirement in setup.py back to what it was in order to fix FileNotFoundError: [Errno 2] issue report. #5075requirementslib==1.6.4 to Fix SetuptoolsDeprecationWarning setuptools.config.read_configuration became deprecated. #5081Updated setup.py to remove support for python 3.6 from built pipenv packages' Metadata. #5065
pipenv packages' Metadata. #5065Added new Pipenv option install_search_all_sources that allows installation of packages from an existing Pipfile.lock to search all defined indexes fo
install_search_all_sources that allows installation of packages from an
existing Pipfile.lock to search all defined indexes for the constrained package version and hash signatures. #5041no_input flag, so the use of e.g Google Artifact Registry is possible. #4706pip from 21.2.2 to 22.0.4 which fixes a number of bugs including
several reports of pipenv locking for an infinite amount of time when using certain package constraints.
This also drops support for python 3.6 as it is EOL and support was removed in pip 22.x #4995more-itertools as it was originally added for zipp, which since stopped using it. #5044pipenv.vendor.vistir.compat.fs_str, since this function was used for PY2-PY3 compatibility and is no longer needed. #5062Implements a pipenv requirements command which generates a requirements.txt compatible output without locking. #4959
pipenv requirements command which generates a requirements.txt compatible output without locking. #4959.venv in the project when PIPENV_VENV_IN_PROJECT variable is False.
Unset variable maintains the existing behavior of preferring to use the project's .venv should it exist. #2763Pipfile.lock following package index restrictions added in pipenv==2022.3.23. #5023click was vendored into the project in
2021.11.9 because by default sphinx-click could no longer determine the CLI inherited from click. #4778install argument --extra-index-url as it was not compatible with index restricted packages.
Using the --index argument is the correct way to specify a package should be pulled from the non-default index. #5022process for change to Development processes.Environment variables were not being loaded when the --quiet flag was set #5010
--quiet flag was set #5010requirementslib was not fully specifying the subdirectory to build_pep517 and
and when a new version of setuptools was released, the test test_lock_nested_vcs_direct_url
broke indicating the Pipfile.lock no longer contained the extra dependencies that should have been resolved.
This regression affected pipenv>=2021.11.9 but has been fixed by a patch to requirementslib. #5019It is now possible to silence the Loading .env environment variables message on pipenv run with the --quiet flag or the PIPENV_QUIET environment varia
Loading .env environment variables message on pipenv run
with the --quiet flag or the PIPENV_QUIET environment variable. #4027Loading .env environment variables... has been switched back to stderr as to not
break requirements.txt generation. Also it only prints now when a .env file is actually present. #5003Use environment variable PIPENV_SKIP_LOCK to control the behaviour of lock skipping. #4797
PIPENV_SKIP_LOCK to control the behaviour of lock skipping. #4797verify, checks the Pipfile.lock is up-to-date #4893PIP_TARGET is set to environment variables, Refer specified directory for calculate delta, instead default directory #4775CI environment value, over mere existence of name #4944pythonfinder from 1.2.9 to 1.2.10 which fixes a bug with WSL
(Windows Subsystem for Linux) when a path can not be read and Permission Denied error is encountered. #4976--code from install and --unused from check.
Check command no longer takes in arguments to ignore.
Removed the vendored dependencies: pipreqs and yarg #4998Nothing published for this version
Remove the extra parentheses around the venv prompt. #4877
Update charset-normalizer from 2.0.3 to 2.0.7, this fixes an import error on Python 3.6. #4865
Return an empty dict when PIPENV_DONT_LOAD_ENV is set. #4851
PIPENV_DONT_LOAD_ENV is set. #4851sys.executable when inside an activated venv. #4852jinja2 dependency as it is not needed any more. #4858click from 8.0.1 to 8.0.3, to fix a problem with bash completion. #4860chardet. #4862Your coding agent can read these notes before it upgrades. Set up the MCP server →