awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
yyuu avatar

yyuu/pyenv

0
View on GitHub↗
44,899 stars·3,252 forks·Shell·MIT·23 views

Pyenv

pyenv is a Python version manager and runtime orchestrator that allows for the installation and switching of multiple Python versions on a single machine without affecting the system installation. It functions as a shell-based version controller that manages binaries through shims to redirect executable calls to specific versions.

The tool is a plugin-extensible system, allowing users to add custom subcommands and logic via shell script plugins. This architecture enables the extension of the command line interface through a dedicated plugins directory.

It provides capabilities for side-by-side installation by building specific versions from source. Version management includes the ability to activate runtimes globally or on a per-project basis, the simultaneous activation of multiple versions, and the removal of installed runtimes.

Features

  • Python Version Managers - Installs and switches between different Python versions on a single machine without affecting the system installation.
  • Command Interception Shims - Uses lightweight proxy scripts to intercept command calls and redirect them to the correct Python version.
  • Runtime Version Managers - Downloads and builds specific Python versions from source based on a list of available releases.
  • Path-Based Version Switchers - Switches active Python versions by dynamically modifying the system PATH environment variable.
  • Shell-Based - Manages Python binaries through shell integration and shims to redirect executable calls.
  • Toolchain Versioning - Allows changing the active Python runtime globally or for specific directories.
  • Per-Project Runtime Assignments - Assigns a particular Python version to a specific directory so the correct environment is used for each project.
  • Python Runtime Managers - Provides an environment for managing multiple Python installations to test code across different releases.
  • CLI Extensions - Adding new subcommands and custom logic to the Python version manager using shell script plugins.
  • Plugin Systems - Provides a system for extending core functionality and adding custom subcommands via modular plugins.
  • Shell Plugin Architectures - Extends the tool's functionality by executing external shell scripts discovered in a dedicated plugins directory.
  • Configuration Cascade Resolutions - Determines the active Python version by cascading settings from the current directory up to the root.
  • Plugin-Extensible Runtimes - Implements a version management system that supports custom subcommands and logic via shell script plugins.
  • Version Managers - Enables simultaneous activation of several Python versions to search for commands across multiple installations.
  • Runtime Builds - Builds specific Python versions from source code to ensure compatibility with the local operating system.
  • Isolated Runtime Directories - Organizes multiple Python installations in independent directories to prevent conflicts between different version binaries.
  • Side-by-Side Runtimes - Enables the compilation of various Python versions on a single machine without interfering with the system-wide installation.
  • Environment Management - Simple Python version management.
  • Python Frameworks and Tools - Python version management tool.

Star history

Star history chart for yyuu/pyenvStar history chart for yyuu/pyenv

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does yyuu/pyenv do?

pyenv is a Python version manager and runtime orchestrator that allows for the installation and switching of multiple Python versions on a single machine without affecting the system installation. It functions as a shell-based version controller that manages binaries through shims to redirect executable calls to specific versions.

What are the main features of yyuu/pyenv?

The main features of yyuu/pyenv are: Python Version Managers, Command Interception Shims, Runtime Version Managers, Path-Based Version Switchers, Shell-Based, Toolchain Versioning, Per-Project Runtime Assignments, Python Runtime Managers.

Which projects share features with yyuu/pyenv?

Projects with overlapping indexed features include: sstephenson/rbenv — rbenv is a Ruby version manager and shell shim environment manager. It allows for the installation of multiple Ruby… pyenv-win/pyenv-win — pyenv-win is a version manager for Windows that enables the installation and switching of multiple Python versions… rbenv/rbenv — rbenv is a Ruby version manager and shell environment manager designed to install, switch between, and manage multiple… astral-sh/rye — Rye is a comprehensive Python toolchain manager, package manager, and virtual environment orchestrator. It provides a… nvm-sh/nvm — This project is a command-line tool designed for managing multiple runtime versions on a local machine. It functions… version-fox/vfox — Vfox is a command-line utility designed to manage multiple programming language runtimes and development tools on a…

Projects sharing features with Pyenv

These projects share indexed features with Pyenv. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • sstephenson/rbenvsstephenson avatar

    sstephenson/rbenv

    16,711View on GitHub↗

    rbenv is a Ruby version manager and shell shim environment manager. It allows for the installation of multiple Ruby versions on a single machine and coordinates the selection of the active version based on the current directory or shell session. The tool functions as an extensible command line framework that intercepts executable calls using shell shims. These shims route requests to the selected language version, ensuring environment isolation by storing binaries in independent directories. The system includes capabilities for language runtime administration, including the ability to downlo

    Shell
    View on GitHub↗16,711
  • pyenv-win/pyenv-winpyenv-win avatar

    pyenv-win/pyenv-win

    7,006View on GitHub↗

    pyenv-win is a version manager for Windows that enables the installation and switching of multiple Python versions without affecting the system global installation. It functions as a multi-version installer and environment controller that ensures isolation and reproducibility across different projects. The tool uses a shim-based routing system to intercept executable calls and direct them to specific versioned binaries. This allows for both system-wide default configurations and local directory-level overrides, where a specific version is automatically activated when entering a project folder

    VBScriptpyenvpyenv-alternativepyenv-for-windows
    View on GitHub↗7,006
  • rbenv/rbenvrbenv avatar

    rbenv/rbenv

    16,710View on GitHub↗

    rbenv is a Ruby version manager and shell environment manager designed to install, switch between, and manage multiple versions of the Ruby programming language. It functions as a project runtime isolator and an extensible versioning framework that ensures the correct Ruby binaries are executed based on the current context. The system uses a shim-based command interception model to resolve the active version before delegating execution to the binary. It allows for locking specific Ruby versions and environment variables to individual directories, ensuring project environment isolation. The ar

    Shellbashrubyruby-installation
    View on GitHub↗16,710
  • astral-sh/ryeastral-sh avatar

    astral-sh/rye

    14,209View on GitHub↗

    Rye is a comprehensive Python toolchain manager, package manager, and virtual environment orchestrator. It provides a unified system for installing Python runtimes, resolving dependencies, and coordinating isolated environments across different projects. The project distinguishes itself through workspace management capabilities that coordinate dependencies and builds across multiple libraries within a single multi-package project structure. It further enables the global installation of Python tools into sandboxed environments, making them accessible system-wide without manual environment acti

    Rustpackage-managerpackagingpython
    View on GitHub↗14,209
Compare all 30 related projects→