Installing PET on Windows⚓︎
On Windows, install PET with the conda package manager. A plain
pip install -e . (as well as uv pip install -e .) fails, because of
graphite-maps and its dependencies: PET's EnIF analysis depends on
graphite-maps, which in turn needs scikit-sparse and the CHOLMOD C library.
Neither package has a Windows build on PyPI; conda-forge provides
scikit-sparse and CHOLMOD ready-made.
Prerequisites⚓︎
- Miniforge, or another conda installation that can reach the conda-forge channel.
- Git for Windows on your
PATH.graphite-mapsand PET'sgeostatdependency are installed from git.
Install⚓︎
From the root of your PET folder:
This creates an environment named pet with Python 3.13, installs the compiled
dependencies from conda-forge, graphite-maps 0.0.11 from GitHub, and PET
itself in editable mode, so changes to the source take effect immediately.
To run the Eclipse or OPM simulators, also install SimulatorWrap from its checkout:
Check the installation⚓︎
To run the test suite, install pytest and run it from the PET folder:
Things to know⚓︎
- Always activate the environment (
conda activate pet) before running PET. Callingenvs\pet\python.exedirectly, without activation, crashes in NumPy's linear algebra because its DLLs are not found. - Keep
scikit-sparsebelow 0.5.graphite-maps0.0.11 requires it, and conda-forge also offers 0.5. - After updating PET, rerun
pip install -e .in the activated environment ifpyproject.tomlhas changed. An editable install picks up source changes, but not new dependencies. - Behind a corporate proxy,
mambaand conda-forge's owngitpackage can fail withschannel: the revocation status is unknown. Usecondarather thanmamba, and Git for Windows rather than a conda-installed git. This is whygitis not listed inenvironment.yml. conda listmay showscipyas coming frompypi. It is still the conda-forge build; pip does not reinstall it.
Known test failures on Windows⚓︎
With the environment above, 583 of 589 non-slow tests pass (October 2026). The six failures are not installation problems:
- Five tests in
tests/assimilation/test_subspace2.pyrequire two analyses to agree bit for bit. On Windows they differ in the last floating-point digit (about 1e-16). tests/test_logging_and_paths.py::test_save_folder_is_not_created_by_reading_itexpects a/path separator and gets\.
Conda on Linux⚓︎
The same environment.yml is expected to work on Linux for those who use
conda as a package manager, though it has not been tested.