Files
MX_Pmodule/pymol-open-source
2026-09-01 10:56:37 +02:00
..
2026-09-01 10:56:37 +02:00
2026-09-01 10:56:37 +02:00

pymol-open-source

Open-Source PyMOL, compiled from the GitHub source. Free for everyone, no license file — unlike the pymol module (Schrodinger incentive bundle).

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 load
  • no-libxml=true — disables COLLADA export
  • no-vmd-plugins=false — disables VMD molfile plugins (needs libnetcdf). false is correct: upstream stores the value straight into vmd_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.