Upstream documents 'pip install --no-build-isolation .'. With default
build isolation the wheel builds in an isolated env upstream never
tests and comes out pure-python (no _cmd.so) without any error - the
root cause of the ModuleNotFoundError: pymol._cmd at runtime.
setuptools+numpy now pre-installed into the venv as build deps.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Two cache layers kept resurrecting a pure-python wheel without _cmd.so:
- modbuild -f re-untars over the old src dir, leaving a stale build/
tree from a half-failed compile; setup.py packs it as-is
- uv's built-wheel cache (in UV_CACHE_DIR, not ~/.cache/uv) then serves
that wheel on every rebuild (Prepared in ~550ms = no compile)
rm -rf $SRC_DIR/build in configure + --no-cache on the pymol install
kill both permanently.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
uv registers the wheel as pymol==3.1.0, so 'uv cache clean
pymol-open-source' is a no-op and the poisoned pure-python wheel
keeps being reinstalled from cache (Prepared in 537ms = no compile).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Launcher existed while compiled ext was missing (partial compile ->
pure-python wheel installed from poisoned uv cache). Import pymol._cmd
at install time so a broken build dies in modbuild, not at runtime.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>