Skip to content

Mirror CPython and support 𝜋thon in 3.14 venvs #16240

Open

Description

@TimPansino

Summary

In CPython 3.14's venv module there is a new alias for the python interpretter alongside python3 or python3.14 called 𝜋thon. This is an easter egg for this minor version of CPython, and it would be neat if uv also added this alias.

In the spirit of the original easter egg, would probably be best to leave it out of the release notes and just quietly add it.

Original Easter Egg: python/cpython#125035

Example

With venv

python3.14 -m venv .venv

Or with uv

uv venv -p 3.14 .venv

Would produce this list of executables in the .venv/bin/ directory

$ ls .venv/bin/
activate                activate.fish           pip                     python
activate_this.py        activate.nu             pip3                    python3
activate.bat            activate.ps1            pip3.14                 python3.14
activate.csh            deactivate.bat          pydoc.bat               𝜋thon

Activity

  1. added
    enhancementNew feature or improvement to existing functionality
    on Oct 10, 2025
  2. danielhollas commented on Oct 10, 2025

    @danielhollas
    Contributor

    There was a PR for this already but received (a light) pushback.

    #13341

    Personally I'm enjoying that Python still retains it's Monty Pyzhon quirkiness so would be nice if uv did this, but it's up to the maintainers. :-)

  3. edmorley commented on Oct 11, 2025

    @edmorley
    Contributor

    One downside to uv supporting this, is that uv would have to keep support for this for many more years than the upstream CPython project does, due to uv supporting historic versions of Python. (ie: uv will likely need to support Python 3.14 for many years after 3.14 reaches upstream EOL)

    In contrast, the upstream CPython project was already able to remove support from main (where Python 3.15 is now being developed), so won't be carrying the feature in any newer branch:
    python/cpython#134037

  4. rafalkrupinski commented on Oct 12, 2025

    @rafalkrupinski

    It could be just an easter egg, not documented or supported...

  5. sebastian-correa commented on Oct 15, 2025

    @sebastian-correa

    Could someone explain to me, a layman when it comes to Python packaging and tooling, what extra support burden this imposes on the dev team? It seems like the PR's code is all that is needed, and shouldn't need much more support than that. Some things I can envision:

    • It may be troublesome to remember to replicate the code if some future feature should support this.
    • It may cause new issues popping up with "𝜋thon not working anymore", which increases triaging times.

    I wouldn't even advertise the feature or claim it's a "supported feature". I understand the desire to ship polished software that always runs, which uv is (it's a joy to use; I love it!), and this increases the bug surface in a sense. But it also seems like a bit of harmless fun.

    However, I may be missing something, so I welcome the opportunity to learn about this 🤓.

  6. hoonsubin commented on Oct 25, 2025

    @hoonsubin

    Just adding on to this thread.

    I'm also having trouble when trying to install torch via uv, but I'd get this error:

    uv pip install --index-url https://rocm.nightlies.amd.com/v2/gfx1151/ --pre torch torchaudio torchvision
      × No solution found when resolving dependencies:
      ╰─▶ Because all versions of torch have no wheels with a matching Python ABI
          tag (e.g., `cp314`) and you require torch, we can conclude that your
          requirements are unsatisfiable.
    
          hint: You require CPython 3.14 (`cp314`), but we only found wheels for
          `torch` (v2.10.0a0+rocm7.10.0a20251024) with the following Python ABI
          tags: `cp311`, `cp312`, `cp313`
    

    At first, I thought it was an uv problem, but now that I see pytorch/pytorch#156856, it seems like a chain of external dependencies and package managers that makes Python more fun to use.

  7. zanieb commented on Oct 25, 2025

    @zanieb
    Member

    @hoonsubin that's unrelated, uv supports 3.14 — this issue is about supporting an easter egg added in 3.14. That issue you linked is the correct issue to follow for pytorch 3.14 support.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or improvement to existing functionality

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions