Simon Willison

If in doubt, delete the uv.lock file

The article explains that when using the uv package manager with Python 3.15, developers sometimes encounter dependency errors because uv.lock files pin versions that lack compatible wheels. The author advises a simple workaround: if a test run fails due to such a mismatch, delete the uv.lock file and rerun the tests. This practice is common in library projects where uv.lock files are ignored in version control.

Simon Willison
Sep 1

Python 3.15.0 candidate 2 is here!

Python 3.15.0 candidate 2 has been released, marking the final release candidate for the upcoming 3.15 release scheduled for October. Hugo van Kemenade, the release manager, notes that only clear bug‑fix changes are allowed between this candidate and the final release, and urges third‑party maintainers to prepare wheels on PyPI and test their projects during this phase. The new RC is not yet available for GitHub Actions, but users can add it to their testing matrix using the allow‑prereleases and check‑latest flags to automatically test against the latest RC and then the stable release.

Simon Willison
Oct 10

Python 3.15.0 added to actions/python-versions

Python 3.15.0 has been added to the actions/python-versions repository. The author had been monitoring the repository for the release and used ChatGPT to automate the check. With the new version available, users can now include "3.15" in their GitHub Actions testing matrix to run tests against the latest Python release.

Towards Data Science
16h ago

How to Manage Python Environments with uv Instead of venv and pip

The article provides a step‑by‑step comparison between the traditional Python tools venv and pip and the newer uv toolchain, illustrating how to initialize a project with uv init, add dependencies with uv add, run code with uv run, and synchronize environments with uv sync. It demonstrates how uv’s lockfile can be used to replicate the exact project setup on another machine, offering a streamlined alternative to the conventional workflow.

By Sara A. Metwalli
Simon Willison
Aug 24

llm-anthropic 0.27

The release of llm‑anthropic 0.27 updates the Anthropic plugin for LLM to be compatible with the newly released anthropic v1.0.0 Python library, which has switched from httpx to httpx2. This mirrors a similar change made by OpenAI in their v3.0.0 release two weeks prior. The update includes a migration guide and a pull request that ensures tests pass after upgrading to anthropic>=1.

Simon Willison
Aug 25

EVE Online: The Move to Python 3 Begins!

EVE Online is beginning its transition to Python 3, a move that will involve using the futurize script on 2.4 million lines of code and a manual review of about 20,000 differences between Python 2 and Python 3. The company has historically run on Stackless Python since 2003, with the last major upgrade in 2010 to Stackless Python 2.7. While the announcement does not detail how Stackless will be replaced, the team previously showcased a shift away from Stackless in their Carbon engine for EVE Frontier, leveraging the open‑source carbonengine/scheduler library.

Simon Willison
Oct 12

Hello Python 3.15, goodbye 3.10, and now I can use 3.11

Python 3.15 introduces several new features, notably explicit lazy imports from PEP 810 that delay module loading until first use, and unpacking syntax in comprehensions (PEP 798) that simplifies flattening lists, sets, and dictionaries. The release also updates the profiling tools, renaming the tracing profiler to profiling.tracing and adding a new sampling profiler, profiling.sampling. These changes aim to improve performance and developer ergonomics in Python code.

Simon Willison
Sep 21

Cloudflare Python Workers are now generally available

Cloudflare Python Workers are now generally available After a two year preview, Cloudflare's support for running Python code in their server-side Workers platform is now stable: "Python is now a first-class, fully supported language on the Cloudflare Developer Platform". A neat thing about this is how it works.

arXiv AI
Sep 24

Escaping Python Dependency Hell: A Hybrid Replay-and-Repair Pipeline for Python Dependency Resolution

The paper introduces PLLM+, a hybrid pipeline for resolving Python dependency conflicts that combines deterministic steps—such as static AST inference, replaying known successful configurations from a solutions database, and live PyPI validation—with an LLM-based repair fallback. Evaluated on the HG2.9K benchmark of 2,891 failing snippets, PLLM+ successfully fixes 1,500 cases, outperforming the baseline PLLM and reducing average runtime from 368.7 to 71.8 seconds per snippet. The majority of fixes (1,495) come from replaying existing configurations, while the LLM fallback contributes only five additional solutions.

By Veronica Poweska, Ariana Oyanguren, Jessica Pourleyli, Sourena Khanzadeh, Manar Alalfi