pypilot-cli
Works out which Python versions a project can actually run on by checking the wheels each dependency ships, sets up the environment on one of them, and names the package that set the limit.
432 downloads / 30 days · PyPI
pip install pypilot-cliYou clone a Python repository, run the install, and it fails because a dependency has no prebuilt wheel for your interpreter. PyPilot works out which Python versions the project's dependencies actually support, sets up an environment on one of them, and names the package that set the limit when there is none.
Why the metadata isn't enough
A package's requires_python is often incomplete. mediapipe 0.10.14 doesn't declare it at all, yet only ships wheels for cp39 through cp312. On Python 3.13 pip looks for a source distribution that doesn't exist and stops with an error that never mentions the Python version.
PyPilot reads both signals. It takes requires_python as the starting range and intersects it with the CPython versions that have a wheel for your OS and CPU, for every dependency. What's left is the set of interpreters the whole project can run on. When that set is empty it names the packages that conflict and their ranges, and pypilot explain shows, platform by platform, what rules out each Python version.
What else it handles
- GPU builds. For pip-installed PyTorch and TensorFlow, the NVIDIA driver decides which builds work, not the CUDA toolkit. PyPilot reads
nvidia-smi, maps the driver to the newest CUDA runtime it supports and the GPU to the CUDA range it needs, and installs the matching torch build (cu124,cu132and so on). Machines without a GPU get the CPU build; Apple Silicon gets a note that the default wheel already uses Metal. - Environments. uv by default, which also installs the Python it needs. Plain venv and pip if you prefer. pixi projects are detected and handled through pixi.
- Imports. It flags imports that are missing or won't run on this Python, and attributes removed from the installed release.
It answers from PyPI metadata and data tables compiled into the engine. There's no AI service, no account and no API key.
The pip package
pypilot-cli puts the pypilot command on any machine with Python 3.8 or later, CI runners included. It has no dependencies and forwards your command line to the native Rust engine. The wheels for Linux x86_64, macOS (Apple Silicon and Intel) and Windows x64 bundle the engine, so nothing is downloaded at run time; elsewhere it downloads the release it pins once, checks it against a pinned SHA-256 and caches it. The current release is 1.4.0.
Commands: doctor (the default, read-only report), check <package>, explain, setup, install <package>, fix python, fix cuda, fix requirements, update-data, migrate-conda, migrate-to-pixi, install-pixi and lsp.