pydevtools.com blog

Why Doesn't the Authoritative Python Packaging Guide Mention the Best Thing that's Happened to Python Packaging?

Despite uv’s meteoric rise and widespread adoption in the Python community over the last year, the excellent and official Python Packaging User Guide (PPUG) at packaging.python.org makes no mention of it. Understanding why this is requires some background knowledge and unveils understanding of the modern Python developer tooling ecosystem. uv’s Rise Since its introduction in early 2024, uv has rapidly gained traction as a high-performance alternative to existing Python tooling. uv delivers 10-100x faster package operations than traditional tools while consolidating functionality previously spread across multiple utilities (pip, pip-tools, virtualenv, pyenv, and more). Its performance advantages, cross-platform support, and unified approach have made it increasingly popular among Python developers.

Read more →

February 27, 2025

Production Experiences with uv

Yesterday on Reddit, batman-iphone asked: Anyone used uv package manager in production Is it reliable to use it in production as it is comparatively new in the market. Also, are there any disadvantages that I should be aware of before pitching it to my manager? Given that the tool was introduced just over a year ago, its rate of adoption has been wild. Here is my summary of the discussion: uv Pros Real Performance Gains Multiple developers reported dramatic performance improvements, e.g.,

Read more →

February 26, 2025

Poetry's Move Toward Python Standards

This is an excerpt from the forthcoming Python Developer’s Tool Handbook. The handbook provides comprehensive guidance on Python tooling and best practices for modern Python development. While modern Python build tools like uv, Hatch, PDM, and Flit embraced PEP 621’s standardized project metadata from their inception, Poetry - one of the most widely used packaging tools - maintained its own configuration format in tool.poetry until version 2.0. This delay reflected both Poetry’s established user base and its richer feature set beyond standard packaging needs.

Read more →

February 21, 2025

Why Use uv Projects Instead of requirements.txt?

This is an excerpt from the forthcoming Python Developer’s Tool Handbook. The handbook provides comprehensive guidance on Python tooling and best practices for modern Python development. The Python ecosystem offers two main approaches to managing project dependencies: the traditional requirements.txt file and the newer pyproject.toml standard. Understanding the strengths and limitations of each helps inform better choices for Python development.

Read more →

February 19, 2025

bitecode.dev's "A year of uv"

uv hit its one-year mark, and bitecode.dev published a thorough retrospective on how it’s held up. The highlights: Solves Python bootstrapping by installing without Python and working the same across platforms Fast - tasks that took minutes now take seconds More reliable dependency resolution than alternatives Works with existing tools without friction Error messages tell you what went wrong and what to do The article lists five situations where uv might not fit, but these feel overly cautious. Speed, reliability, and simpler workflows make uv worth adopting for any team that can.

Read more →

February 18, 2025

Flexible Python Version Management with uv and tox

When working with Python projects that use tox for testing, you may encounter version mismatch errors like: lint-format: skipped because could not find python interpreter with spec(s): python3.8 This happens when tox expects a specific Python version that isn’t available in your environment. Traditionally, this would require:

Read more →

February 12, 2025

It's happening! A Python Type Checker from Astral

After months of speculation, Astral (creators of Ruff and uv) has officially announced their work on a new static type checker for Python. Built from the ground up in Rust, this tool aims to bring Astral’s signature focus on performance to Python’s static typing ecosystem. Charlie Marsh, Astral founder, says that beyond performance, the project seeks to minimize “false positives, especially on untyped code, to make it easier for projects to adopt a type checker and expand coverage gradually over time, without being swamped in bogus type errors from the start.”

Read more →

January 29, 2025

One Line Command to Launch a Notebook with Pytorch

uv is changing how accessible Python is for new users. If you want to try out pytorch in a Jupyter Notebook, you can install uv and then run this single line command: uv run --python 3.12 --with "torch~=2.4" --with jupyter --with "numpy<2" jupyter lab uv will grab all your dependencies (including Python 3.12, if you don’t have it installed), install them in an isolated environment, and launch Jupyter Lab.

Read more →

January 15, 2025

"uv: Towards a unified vision for Python tooling"

This is a great post by Prashanth Rao on the unified vision that uv brings for Python package and project management. As he shares, the tools in this space have been improving over the last 15 years, but uv is a step-change for usability. The most remarkable aspect of uv is the list of steps he shares that (might) happen when you call uv run hello.py: Installs Python if it’s not already installed Creates and activates the virtual environment Installs the dependencies Runs the code And all of this happens with blazing speed.

Read more →

December 27, 2024

Effective Python Developer Tooling in December 2024

I have been writing Python for 14 years next month. When I started, people were still using easy_install to install egg-based packages for Python 2.7 and nobody had heard about Conda yet, much less uv. The Python tool ecosystem has changed since. Many people are confused by the fragmentation in the ecosystem, but we have better tooling for Python today than we’ve ever had before. A friend recently invited me to give a talk to his team about Python tooling. In the presentation, I shared some principles of Python tooling and developer efficiency, some anti-patterns I’ve observed, recommended practices, and an opinionated list of tools I like in December 2024. What follows is a summary of that talk.

Read more →

December 20, 2024