EVERYTHING XIAOMI
Get listed

pyenv

pyenv is a free, MIT-licensed tool for switching between Python versions on Linux/Unix-like systems and macOS.

Place
#18 of 30
Score
6.0
pyenv's website

What pyenv is

pyenv is a free, MIT-licensed tool for switching between Python versions on Linux/Unix-like systems and macOS. It can set a global version for a user, select versions by project, or apply an override through an environment variable. It supports CPython, PyPy, Stackless Python, Jython, and other distributions, and can keep multiple installations available at once, including for cross-version testing with tox. Shim executables on PATH intercept Python commands and route them to the selected installation. Most Python releases provided through pyenv are built from source during installation, so Python build dependencies must be installed first. The project documents Linux/Unix and macOS installation through a shell installer, Git checkout, or Homebrew, and allows functionality to be extended with plugins. pyenv does not manage virtual environments itself; its project points users to virtualenv or the pyenv-virtualenv plugin for that purpose. It does not officially support Windows outside Windows Subsystem for Linux and recommends pyenv-win for native Windows Python versions.

Good

  • Supports global, per-project, and environment-variable overrides.
  • Supports several Python distributions, including CPython and PyPy.
  • Multiple installed versions can remain available at once.
  • Plugins can extend or customize functionality.

Watch out

  • Does not manage virtual environments itself.
  • Most releases are built from source and need build dependencies.
  • Windows support is limited to Windows Subsystem for Linux.

Who it suits

pyenv suits developers who need to switch among Python versions on Linux/Unix-like systems or macOS. It is also useful when multiple Python distributions or project-specific versions are needed.

Verdict

pyenv handles Python version selection across users, projects, and distributions. Users needing virtual environments must use another tool or plugin, and native Windows users are directed to pyenv-win.

Plans and prices

From pyenv's own pricing page, checked 5 Oct 2026.

All about pricing
PlanPriceWhat it gives you
pyenvFreeMIT-licensed open-source project · no paid plans or pricing stated

The facts

Each one read from pyenv's own pages, with the date it was checked.

What it does

Builds
Most pyenv-provided Python releases are built from source during installation, and Python build dependencies must be installed first.checked 5 Oct 2026
Distributions
It supports CPython, PyPy, Stackless Python, Jython, and other Python distributions.checked 5 Oct 2026
Installation
The README documents installation on Linux/Unix and macOS, including a shell installer, Git checkout, and Homebrew.checked 5 Oct 2026
License
The repository identifies pyenv as MIT licensed.checked 5 Oct 2026
Multiple versions
Users can make multiple installed Python versions available at once, including for cross-version testing with tox.checked 5 Oct 2026
Plugins
The project supports extending and customizing functionality with plugins.checked 5 Oct 2026
Purpose
pyenv lets users switch between multiple Python versions.checked 5 Oct 2026
Security
The v2.8.0 changelog lists a fix for CVE-2026-68939 involving glob character handling in .python-version.checked 5 Oct 2026
Shims
It intercepts Python commands through shim executables added to PATH and routes them to the selected installation.checked 5 Oct 2026
Version selection
It supports global per-user and per-project Python versions, plus overrides through an environment variable.checked 5 Oct 2026
Virtual environments
pyenv does not manage virtual environments itself; the project points users to virtualenv or the pyenv-virtualenv plugin.checked 5 Oct 2026

Where it runs

Windows support
The project says it does not officially support Windows and does not work outside Windows Subsystem for Linux; it recommends the pyenv-win fork for native Windows Python versions.checked 5 Oct 2026

Alternatives to pyenv

All alternatives
  1. 1

    nvm

    Free planOpen sourceLinuxmacOSSelf-hostedWindows
    7.4Free plan
  2. 2

    GHCup

    Free planWebLinuxmacOSSelf-hosted
    7.0Free plan
  3. 3

    Jabba

    Free planLinuxmacOSWindows
    6.6Free plan
  4. 4rustup logo

    rustup

    Free planLinuxmacOSWindows
    6.6Free plan
  5. 5

    axe-playwright

    Free planWebLinux
    6.4Free plan
  6. 6

    asdf

    Free planLinuxmacOS
    6.2Free plan