au is a fast Python version and package management tool inspired by au and conda, providing features for installing Python versions, managing virtual environments, and installing packages.
# Build from source
git clone https://github.com/ForesAi/au.git
cd au
go build -o au main.go
# Or use go install
go install github.com/ForesAi/au@latest
# Install Python versions
au python install 3.11.0
au python install 3.12.0
# List installed Python versions
au python list
# Set default Python version
au python use 3.11.0
# Create virtual environment
au venv create myproject
au venv create myproject --python 3.12.0
# List virtual environments
au venv list
# Activate virtual environment
au venv activate myproject
# Remove virtual environment
au venv remove myproject
# Install packages
au pip install requests
au pip install numpy pandas
# Install from requirements file
au pip install -r requirements.txt
# List installed packages
au pip list
# Uninstall packages
au pip uninstall requests
# Export dependencies
au pip freeze > requirements.txt
au uses the ~/.au.yaml configuration file. You can customize the following settings:
default_python: "3.11.0"
python:
install_dir: "~/.au/python"
venv:
dir: "~/.au/venv"
pip:
index_url: "https://pypi.org/simple/"
extra_indexes: []
timeout: 30
retries: 3
cache:
dir: "~/.au/cache"
max_size: "1GB"
ttl: "7d"
Python version management commands.
Subcommands:
install <version> - Install specified Python versionlist - List installed Python versionsuse <version> - Set default Python versionVirtual environment management commands.
Subcommands:
create <name> - Create new virtual environmentlist - List all virtual environmentsremove <name> - Remove virtual environmentactivate <name> - Show command to activate virtual environmentPackage management commands.
Subcommands:
install <packages...> - Install Python packageslist - List installed packagesuninstall <packages...> - Uninstall Python packagesfreeze - Output installed packages in requirements formatOptions:
-r, --requirement <file> - Install from requirements file--editable - Install package in editable mode--index-url <url> - Specify package index URL--upgrade - Upgrade specified packagesgo build -o au main.go
go test ./...
Issues and Pull Requests are welcome!
MIT License
| Feature | au | au | conda | pip |
|---|---|---|---|---|
| Python Version Management | ✅ | ❌ | ❌ | ❌ |
| Virtual Environment Management | ✅ | ✅ | ✅ | ❌ |
| Package Installation Speed | 🚀 Fast | 🚀 Very Fast | 🐢 Slower | 🐢 Slower |
| Dependency Resolution | 🔍 Smart Resolution | 🔍 Smart Resolution | 🔍 Smart Resolution | ❌ Basic |
| Lock File Support | ✅ au.lock | ✅ au.lock | ❌ | ❌ |
| Project Management | ✅ pyproject.toml | ✅ pyproject.toml | ❌ | ❌ |
| Multi-Environment Support | ✅ dev/prod/test | ✅ dev/prod | ✅ environments | ❌ |
| Caching Mechanism | ✅ Content-addressable+LRU | ✅ Content-addressable | ✅ Index Cache | ❌ |
| Concurrent Installation | ✅ Supported | ✅ Supported | ❌ | ❌ |
| Configuration File | ✅ au.yaml | ✅ pyproject.toml | ✅ .condarc | ❌ |
| Cross-Platform Support | ✅ Linux/Windows/macOS | ✅ Linux/Windows/macOS | ✅ Linux/Windows/macOS | ✅ All Platforms |
| Docker Support | ✅ Official Image | ✅ Official Image | ✅ Official Image | ❌ |
| GitHub Actions | ✅ Auto Build | ✅ Auto Build | ✅ Auto Build | ❌ |
| Binary Distribution | ✅ Multi-architecture | ✅ Multi-architecture | ✅ Multi-architecture | ❌ |
| Operation | au | au | conda | pip |
|---|---|---|---|---|
| Create Virtual Environment | ~2s | ~1s | ~5s | ~2s |
| Install requests Package | ~3s | ~2s | ~8s | ~5s |
| Install 10 Packages | ~15s | ~10s | ~45s | ~30s |
| Dependency Resolution (50 packages) | ~5s | ~3s | ~20s | N/A |
| Cache Hit Rate | 85% | 90% | 70% | N/A |
| Scenario | au | au | conda | pip |
|---|---|---|---|---|
| Web Development | ✅ Recommended | ✅ Recommended | ⚠️ Available | ✅ Basic |
| Data Science | ✅ Good | ⚠️ Limited | ✅ Best | ⚠️ Limited |
| Machine Learning | ✅ Good | ⚠️ Limited | ✅ Best | ⚠️ Limited |
| CI/CD | ✅ Fast | ✅ Fast | ⚠️ Slower | ⚠️ Slower |
| Enterprise Environment | ✅ Flexible | ✅ Simple | ✅ Mature | ⚠️ Basic |
Download binary files for corresponding platforms from GitHub Releases:
# Linux (x86-64)
wget https://github.com/ForesAi/au/releases/latest/download/au-linux-amd64.tar.gz
tar -xzf au-linux-amd64.tar.gz
sudo mv au /usr/local/bin/
# macOS (Apple Silicon)
wget https://github.com/ForesAi/au/releases/latest/download/au-darwin-arm64.tar.gz
tar -xzf au-darwin-arm64.tar.gz
sudo mv au /usr/local/bin/
# Windows (x86-64)
wget https://github.com/ForesAi/au/releases/latest/download/au-windows-amd64.zip
unzip au-windows-amd64.zip
# Add au.exe to PATH
# Using go install
go install github.com/ForesAi/au@latest
# Using Homebrew (macOS)
brew install ForesAi/au/au
# Using Docker
docker pull ForesAi/au-tool/au
docker run --rm -it ForesAi/au-tool/au --help
git clone https://github.com/ForesAi/au.git
cd au
go build -o au main.go