Python Ecosystem
vx provides comprehensive Python support through both standalone Python runtime and the uv package manager.
Supported Tools
| Tool | Description |
|---|---|
python | Python interpreter (via python-build-standalone) |
uv | Fast Python package manager |
uvx | Python tool runner (uv tool run) |
Python Runtime
vx uses python-build-standalone from Astral for portable Python distributions. Supports Python 3.7 to 3.13+.
Version Support Status
| Version | Status | Notes |
|---|---|---|
| Python 3.13+ | Active | Latest features |
| Python 3.12 | Active | Recommended for production |
| Python 3.11 | Active | Stable |
| Python 3.10 | Active | Stable |
| Python 3.9 | EOL | Last build: 20251120 |
| Python 3.8 | EOL | Limited availability |
| Python 3.7 | EOL | Legacy support only |
Note: Python versions that have reached End-of-Life (EOL) may have limited availability in python-build-standalone releases.
Installation
# Install latest Python
vx install `python@latest
# Install specific version
vx install python 3.12.8
vx install python 3.11.11
vx install python 3.10.16
vx install python 3.9.21
vx install python 3.8.20
vx install python 3.7.17
# List available versions
vx list pythonRunning Python
vx python --version
vx python script.py
vx python -m pytestRecommendation: For pure Python development, we recommend using
uvinstead of managing Python directly.uvprovides faster package installation, built-in virtual environment management, and automatic Python version management.
uv (Recommended)
uv is an extremely fast Python package and project manager. We strongly recommend using uv for Python development as it provides:
- 10-100x faster package installation than pip
- Built-in virtual environment management
- Automatic Python version management
- Modern project management with
pyproject.toml
Installation
vx install `uv@latestPackage Management
vx uv pip install requests
vx uv pip install -r requirements.txt
vx uv pip listVirtual Environments
vx uv venv .venv
vx uv venv .venv --python 3.11Project Management
vx uv init
vx uv add requests
vx uv sync
vx uv run python script.pyuvx
uvx runs Python tools without installing them globally.
vx uvx ruff check .
vx uvx black .
vx uvx mypy src/
vx uvx pytest
vx uvx jupyter notebookProject Configuration
[tools]
uv = "latest"
[python]
version = "3.11"
venv = ".venv"
[python.dependencies]
requirements = ["requirements.txt"]
packages = ["pytest", "black", "ruff"]
git = [
"https://github.com/user/repo.git",
]
dev = ["pytest", "mypy"]
[scripts]
test = "pytest"
lint = "uvx ruff check ."
format = "uvx black ."
typecheck = "uvx mypy src/"Common Workflows
New Python Project (Recommended)
# Initialize project with uv
vx uv init my-project
cd my-project
# Add dependencies
vx uv add requests pandas
# Run code
vx uv run python main.pyUsing Standalone Python
# Install Python directly
vx install python 3.12.8
# Run Python
vx python --version
vx python script.pyData Science
# Start Jupyter
vx uvx jupyter notebook
# Or JupyterLab
vx uvx jupyter labCode Quality
# Lint with ruff
vx uvx ruff check .
# Format with black
vx uvx black .
# Type check with mypy
vx uvx mypy src/Testing
# Run pytest
vx uvx pytest
# With coverage
vx uvx pytest --cov=srcVirtual Environment Setup
When [python] is configured in vx.toml, vx setup will:
- Create the virtual environment
- Install from requirements files
- Install listed packages
- Install git dependencies
vx setup
# Creates .venv, installs dependenciesTips
- Use uv for development: uv provides the best Python development experience with automatic version management and fast package installation
- Use uvx for tools: Run linters, formatters, etc. with
uvxinstead of installing globally - Pin Python version: Specify version in
vx.tomlfor reproducibility - Use standalone Python for specific needs: When you need a specific Python version without uv's management