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>
pymol-open-source
Open-Source PyMOL, compiled from the GitHub source. Free for everyone,
no license file — unlike the pymol module (Schrodinger incentive
bundle).
- Upstream: https://github.com/schrodinger/pymol-open-source
- License: Open-Source PyMOL license (BSD-like)
How it is built
uv route (careless-style): uv fetches a standalone Python 3.12 into
$PREFIX/python, creates $PREFIX/venv, then uv pip install compiles
the sha-pinned source tarball into it with the gcc/12.3.0 module
(CC=gcc CXX=g++; gcc is also a runtime dep for its libstdc++). glm
(header-only) is fetched as a second pinned tarball and staged via
PREFIX_PATH. PyQt5 is pip-installed for the GUI.
Build options passed as uv pip install -C k=v (upstream
_custom_build/backend.py turns them into build_ext --k=v):
use-msgpackc=no— no msgpack-c/mmtf-cpp on Ra; disables fast MMTF loadno-libxml=true— disables COLLADA exportno-vmd-plugins=false— disables VMD molfile plugins (needs libnetcdf).falseis correct: upstream stores the value straight intovmd_plugins.
Boolean flags take ONLY true/false — upstream str2bool rejects
yes/no with "Boolean value expected".
Required system RPMs on the build host (if the compile fails, ask
sysadmins for): glew-devel libpng-devel freetype-devel mesa-libGL-devel.
uv must be on the build host (default ~/.local/bin/uv, override with
UV=/path/to/uv).
Building on Ra
module use unstable && module load modbuild/2.1.3
cd pymol-open-source
modbuild build \
--tmpdir=/das/work/p21/p21515/.cache/Pmodules \
--distdir=/das/work/p21/p21515/.cache/Pmodules \
3.1.0
module use MX unstable && module load pymol-open-source/3.1.0
Verifying the install
which pymol # -> .../pymol-open-source/3.1.0/venv/bin/pymol
readlink -f "$PYMOL_ENV/bin/python" # system /usr/bin/python3.12 (RPM) is fine;
# inside $PREFIX/python if uv had to download one
pymol -cq # headless no-op: exits 0 without X
pymol # Qt GUI check, needs X
Adding a new version
Add the version + tarball sha256 in files/config.yaml
(sha256sum the downloaded v<ver>.tar.gz), then build as above.