# Rye — Comprehensive Python Project Manager by Astral > Rye is an all-in-one Python project management tool that handles installation, virtualenv creation, dependency management, linting, and formatting in a single unified workflow. ## Install Save in your project root: # Rye — Comprehensive Python Project Manager by Astral ## Quick Use ```bash # Install Rye curl -sSf https://rye.astral.sh/get | bash # Create a new project rye init my-project && cd my-project # Add dependencies and sync rye add flask requests rye sync # Run your project rye run python app.py ``` ## Introduction Rye is a comprehensive project and package management solution for Python created by Armin Ronacher. It manages Python installations, virtual environments, and dependencies through a single tool, eliminating the need to juggle pyenv, pip, virtualenv, and pip-tools separately. Now maintained by Astral (the team behind uv and Ruff), Rye provides a cargo-like experience for Python developers. ## What Rye Does - Manages Python interpreter installations across multiple versions automatically - Creates and maintains virtual environments per project without manual intervention - Handles dependency resolution and lockfile generation for reproducible builds - Provides built-in linting and formatting via integration with Ruff - Supports workspaces for monorepo-style Python projects ## Architecture Overview Rye is written in Rust for speed and ships as a single static binary. It downloads and manages Python toolchains from the indygreg standalone builds. Each project gets an isolated virtualenv, and Rye generates both a `requirements.lock` and `requirements-dev.lock` using pip-tools or uv as the resolver backend. The `pyproject.toml` file serves as the single source of truth for project metadata and dependencies. ## Self-Hosting & Configuration - Install via the official shell script or download prebuilt binaries from GitHub releases - Configure global settings in `~/.rye/config.toml` including default Python version - Set per-project Python version with `rye pin 3.12` - Enable uv as the dependency resolver backend for faster installs - Integrate with CI by running `rye sync --no-lock` to use existing lockfiles ## Key Features - Automatic Python version management without external tools like pyenv - Lockfile-based dependency resolution ensuring reproducible environments - Built-in script runner similar to npm scripts via `rye run` - Global tool installation with `rye install` for CLI utilities - Workspace support for managing multiple related Python packages ## Comparison with Similar Tools - **uv** — faster package installer and resolver from the same team; Rye delegates to uv internally and recommends migration for new projects - **Poetry** — popular dependency manager but does not manage Python installations - **PDM** — PEP 582-supporting manager with similar scope but without Python version management - **Hatch** — project manager with built-in build system, less focus on lockfiles - **pipx** — focuses only on installing CLI tools globally, not project management ## FAQ **Q: Is Rye still maintained now that uv exists?** A: Yes. Rye is maintained by Astral and continues to receive updates. For new projects, Astral recommends evaluating uv, but Rye remains a supported option. **Q: Can Rye manage Python versions like pyenv?** A: Yes. Rye downloads and manages Python interpreters directly. Running `rye fetch 3.12` installs Python 3.12 and `rye pin 3.12` sets it for the current project. **Q: Does Rye work with existing pyproject.toml files?** A: Yes. Rye reads standard pyproject.toml metadata and can adopt existing projects with `rye sync`. **Q: How does Rye handle global tools?** A: Use `rye install ` to install CLI tools into an isolated global environment, similar to pipx. ## Sources - https://github.com/astral-sh/rye - https://rye.astral.sh/ --- Source: https://tokrepo.com/en/workflows/56350915-3cf6-11f1-9bc6-00163e2b0d79 Author: AI Open Source