If you want to patch an existing Python environment rather than configure a registry, use the Root Patcher CLI instead. Run
rootio_patcher pip remediate to automatically identify and replace vulnerable packages in your current environment.Which tool should I use?
If you’re starting fresh or choosing between tools, here’s a quick guide:| Tool | Best for |
|---|---|
| pip | Simple projects, scripts, or any environment where a requirements.txt is sufficient |
| uv | Fast installs, modern Python projects, pyproject.toml-based workflows — uv is significantly faster than pip |
| Poetry | Projects that need dependency locking, packaging, and publishing in one tool |
~/.netrc and resolve packages through pkg.root.io/pypi/simple/. The configuration steps differ only in how you point each tool at Root’s registry.
Authentication
All three tools read credentials from~/.netrc. Add your Root token:
pip
Configure the registry
Install
Add the package to yourrequirements.txt:
uv
Configure the registry
Add to yourpyproject.toml:
Install and sync
Poetry
Configure the registry
Install
CI/CD Configuration
Inject credentials via environment and write to~/.netrc at build time:
Troubleshooting
| Issue | Solution |
|---|---|
401 Unauthorized | Verify ~/.netrc has correct token and chmod 600 is set |
| Package not found | Confirm extra-index-url includes PyPI as fallback |
| SSL errors | Ensure you’re using https:// not http:// |
| Hash mismatch | Root serves patched packages — hashes differ from PyPI; this is expected |