FREEDOM251

Freedom251 › Runtime Version Managers

pyenv

Free plan LinuxMacSelf-hosted

Visit pyenv Alternatives Pricing

pyenv's own site

What pyenv is

pyenv is a free, MIT-licensed tool for switching among Python versions on Linux, Unix-like systems, and macOS. It can select a global version for a user, a project-specific version, or an override set through an environment variable. Supported distributions include CPython, PyPy, Stackless Python, Jython, and others, and multiple installed versions can remain available at once, including for cross-version testing with tox. Shim executables placed on PATH intercept Python commands and route them to the selected installation. Most Python releases supplied through pyenv are built from source during installation, so Python build dependencies need to be installed first. The project documents a shell installer, Git checkout, and Homebrew installation, and supports plugins for extending or customizing its functionality. pyenv does not manage virtual environments itself; the project points users to virtualenv or the pyenv-virtualenv plugin for that need. It does not officially support Windows outside Windows Subsystem for Linux and recommends the pyenv-win fork for native Windows Python versions. The v2.8.0 changelog lists a fix for CVE-2026-68939 involving glob character handling in .python-version.

Who it suits

pyenv suits developers who need to switch Python versions by user, project, or environment override. It is intended for Linux, Unix-like systems, and macOS rather than native Windows use.

What it does well

  • Selects global, project, or environment-based Python versions.
  • Supports multiple Python distributions.
  • Keeps multiple installed versions available at once.
  • Extensible through plugins.
  • Free and MIT-licensed.

What to know first

  • Does not officially support Windows outside WSL.
  • Does not manage virtual environments itself.
  • Most provided Python releases require source builds and dependencies.

Plans

PlanBilled and limitsPrice
pyenvMIT-licensed open-source project · no paid plans or pricing statedFree

As github.com lists them, read 5 Oct 2026. The maker's own page has the final word.

Getting started

  1. Open the pyenv GitHub project.
  2. Choose a documented installation route: shell installer, Git checkout, or Homebrew for Linux/Unix or macOS.
  3. Install Python build dependencies before installing Python releases built from source.
  4. Install a Python distribution and select a version globally, per project, or with an environment-variable override.
  5. For virtual environments, use virtualenv or the pyenv-virtualenv plugin.

Verdict

pyenv provides flexible Python version selection across supported systems and distributions. Users should account for source-build requirements and use another tool for virtual environments.

Questions

Is pyenv free?

Yes. It is a free, MIT-licensed open-source project with no paid plans stated.

Which platforms does pyenv support?

It supports Linux, macOS, and self-hosted environments. It does not officially support native Windows outside Windows Subsystem for Linux; the project recommends pyenv-win for native Windows Python versions.

Which Python distributions can it select?

It supports CPython, PyPy, Stackless Python, Jython, and other Python distributions.

Does pyenv manage virtual environments?

No. The project points users to virtualenv or the pyenv-virtualenv plugin.

How does pyenv choose a Python version?

It supports a global per-user version, a per-project version, and an override through an environment variable. Shim executables on PATH route Python commands to the selected installation.

Facts from pyenv's own pages

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

Where pyenv stands on Freedom251

Look at these too