DEV Community

Alex Spinov
Alex Spinov

Posted on

Rye Has a Free Python Tool That Replaces pip, venv, pyenv, and Poetry — One Binary Does It All

The Python Tooling Problem

To start a Python project in 2025, you need:

  • pyenv to manage Python versions
  • venv or virtualenv to create environments
  • pip to install packages
  • pip-tools or poetry for lockfiles
  • setuptools or hatchling for building

That's 5 tools to do what should be 1.

Rye is that 1 tool. Written in Rust by the creator of Flask (Armin Ronacher).

What Rye Gives You

Python Version Management

# Install any Python version
rye pin 3.12
rye pin cpython@3.11
rye pin pypy@3.10

# Auto-downloads the right Python. No pyenv needed.
Enter fullscreen mode Exit fullscreen mode

Project Setup

rye init my-project
cd my-project
Enter fullscreen mode Exit fullscreen mode

Creates pyproject.toml, .python-version, and a virtual environment. Everything configured.

Dependency Management

# Add dependencies
rye add flask requests
rye add --dev pytest black

# Lock and sync
rye sync
Enter fullscreen mode Exit fullscreen mode

Generates a lockfile. Installs exact versions. Reproducible builds.

Scripts

# pyproject.toml
[tool.rye.scripts]
dev = "flask run --debug"
test = "pytest -v"
lint = "ruff check ."
Enter fullscreen mode Exit fullscreen mode
rye run dev
rye run test
Enter fullscreen mode Exit fullscreen mode

Global Tool Installation

# Install CLI tools globally (replaces pipx)
rye install black
rye install ruff
rye install httpie
Enter fullscreen mode Exit fullscreen mode

Workspace Support

# pyproject.toml (monorepo root)
[tool.rye.workspace]
members = ["packages/*"]
Enter fullscreen mode Exit fullscreen mode

Manage multiple Python packages in one repo with shared lockfiles.

Quick Start

# Install Rye (one command)
curl -sSf https://rye.astral.sh/get | bash

# Create and run a project
rye init my-api
cd my-api
rye add fastapi uvicorn
rye sync
rye run uvicorn main:app
Enter fullscreen mode Exit fullscreen mode

Why This Matters

Python's tooling fragmentation is its biggest pain point. Rye proves that one tool can manage Python versions, virtual environments, dependencies, lockfiles, and builds — like Cargo for Rust or npm for JavaScript.


Building Python data pipelines? Check out my web scraping actors on Apify Store — structured data via API for your Python apps. For custom solutions, email spinov001@gmail.com.

Top comments (0)