# Announcement: pip 26.1 release!

**URL:** <https://discuss.python.org/t/announcement-pip-26-1-release/107108>\
**Category:** Packaging\
**Tags:** announcement\
**Created:** [April 26, 2026, 9:26pm UTC](https://discuss.python.org/t/announcement-pip-26-1-release/107108 "2026-04-26T21:26:07Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![sbidoul](https://sea2.discourse-cdn.com/flex002/user_avatar/discuss.python.org/sbidoul/32/244_2.png) [@sbidoul](https://discuss.python.org/u/sbidoul)\
**Post date:** [April 26, 2026, 9:26pm UTC](https://discuss.python.org/t/announcement-pip-26-1-release/107108/1 "2026-04-26T21:26:07Z")

</div>

On behalf of the PyPA, I am pleased to announce that the pip team has just released pip 26.1.

> **[Client Challenge](https://pypi.org/project/pip/26.1/)**

# Highlights

The main new feature is _experimental_ support for `pylock.toml` files as a requirements source. `pylock.toml` files or URLs can be provided with the `-r / --requirements` options to the commands supporting it.

As conveyed by the experimental warning, keep in mind this feature may evolve significantly or even be removed in favor of another option or command in future pip releases. Please share your feedback in this [issue](https://github.com/pypa/pip/issues/13952).

Other notable improvements include

- Allow `--uploaded-prior-to` to accept a duration in days (e.g., `P3D` for 3 days ago).
- Allow unpinned requirements to use hashes from constraints and allow URL constraints to apply to requirements with extras, removing some of the last roadblocks towards the removal of the legacy resolver.
- Several performance and memory usage improvements.

And of course several bug fixes and security improvements.

Please consult our [changelog](https://pip.pypa.io/en/stable/news/) for more information.

## Thanks

As with all pip releases, a significant amount of the work was contributed by  
pip’s user community. Many thanks to all who have contributed, whether through  
code, documentation, issue reports and/or discussion. Your help keeps pip  
improving, and is hugely appreciated.

Cheers,

Stéphane

---

<div class="post-metadata">

**Author:** ![ichard26](https://sea2.discourse-cdn.com/flex002/user_avatar/discuss.python.org/ichard26/32/5810_2.png) [@ichard26](https://discuss.python.org/u/ichard26)\
**Post date:** [April 26, 2026, 10:41pm UTC](https://discuss.python.org/t/announcement-pip-26-1-release/107108/2 "2026-04-26T22:41:18Z")

</div>

Guess what, I’m back to writing regular release posts for pip!

I’ve included expanded discussion of the highlights of this release, in particular what pip’s **experimental** support for reading/installing lockfiles really means.

> **[What's new in pip 26.1 - lockfiles and dependency cooldowns!](https://ichard26.github.io/blog/2026/04/whats-new-in-pip-26.1/)**
>
> pip 26.1 adds support for dependency cooldowns, experimental support for reading/installing from standard lockfiles (pylock.toml), fixes several long-standing limitations of the 2020 resolver, and drops support for Python 3.9.

I’m biased, but do go read it. It’s a good, informative read, believe me 😉

I will note that I wrote this within very little time, so please forgive any typos.

---

<div class="post-metadata">

**Author:** ![kpfleming](https://sea2.discourse-cdn.com/flex002/user_avatar/discuss.python.org/kpfleming/32/2761_2.png) [@kpfleming](https://discuss.python.org/u/kpfleming)\
**Post date:** [April 27, 2026, 10:22am UTC](https://discuss.python.org/t/announcement-pip-26-1-release/107108/3 "2026-04-27T10:22:29Z")

</div>

Small typo in the title 🙂

---

<div class="post-metadata">

**Author:** ![sbidoul](https://sea2.discourse-cdn.com/flex002/user_avatar/discuss.python.org/sbidoul/32/244_2.png) [@sbidoul](https://discuss.python.org/u/sbidoul)\
**Post date:** [May 4, 2026, 7:12pm UTC](https://discuss.python.org/t/announcement-pip-26-1-release/107108/4 "2026-05-04T19:12:10Z")

</div>

I just released pip 26.1.1 which fixes a regression where uninstall would leave behind empty directories.

---

<div class="post-metadata">

**Author:** ![sbidoul](https://sea2.discourse-cdn.com/flex002/user_avatar/discuss.python.org/sbidoul/32/244_2.png) [@sbidoul](https://discuss.python.org/u/sbidoul)\
**Post date:** [May 31, 2026, 5:54pm UTC](https://discuss.python.org/t/announcement-pip-26-1-release/107108/5 "2026-05-31T17:54:19Z")

</div>

I just released pip 26.1.2 with better validation of script names and a caching fix.
