Compatibility matrix#

This page describes the platforms targeted by the current packaging configuration. A platform marked wheel has a compiled binary distribution; source means that PyMieSim must be built locally with its native toolchain.

Python and wheel support#

Current release targets#

Operating system

Architecture

Python

Distribution

Notes

Linux

x86_64

3.11

manylinux wheel

Built against manylinux_2_28.

Linux

x86_64

3.12

manylinux wheel

Built against manylinux_2_28.

Linux

x86_64

3.13

manylinux wheel

Built against manylinux_2_28.

macOS

arm64

3.11

macOS wheel

Requires the packaged OpenMP runtime; deployment target is macOS 15.

macOS

arm64

3.12

macOS wheel

Requires the packaged OpenMP runtime; deployment target is macOS 15.

macOS

arm64

3.13

macOS wheel

Requires the packaged OpenMP runtime; deployment target is macOS 15.

Windows

AMD64

3.11

Windows wheel

Built with the configured MinGW toolchain and OpenMP support.

Windows

AMD64

3.12

Windows wheel

Built with the configured MinGW toolchain and OpenMP support.

Windows

AMD64

3.13

Windows wheel

Built with the configured MinGW toolchain and OpenMP support.

Any supported OS

Native architecture

3.10

Source build

Declared by the package metadata, but not currently included in cibuildwheel targets.

The package metadata currently declares Python >= 3.10. Python 3.10 users should therefore expect to compile from source unless a separately published wheel is available. The project should either add Python 3.10 wheel builds or raise requires-python to >=3.11 before removing this row.

Source-build requirements#

Building from source requires:

  • Python development headers and a working C++20 compiler;

  • a Fortran compiler for the Bessel subroutine;

  • CMake and Ninja or Make;

  • pybind11 and scikit-build-core;

  • an OpenMP implementation;

  • libomp on macOS, typically installed with Homebrew.

The native extensions are compiled into the PyMieSim package. A source build is recommended for unsupported architectures or when developing the C++ backend.

Dependency policy#

PyMieSim currently pins several numerical dependencies. When diagnosing an installation problem, inspect the resolved environment with:

python -m pip show PyMieSim numpy matplotlib pandas
python -m pip check

The compiled extensions must be built for the same Python implementation and architecture as the interpreter importing them. Mixing extensions from a different Python version, architecture, or build directory can produce import errors such as missing symbols or incompatible binary formats.

Release verification#

Each wheel target should be verified in a clean environment by:

  1. installing the wheel from outside the source checkout;

  2. importing PyMieSim and every compiled extension;

  3. running one minimal sphere simulation;

  4. running python -m pip check;

  5. inspecting native dependencies with auditwheel, delocate, or dumpbin as appropriate for the platform.

See Troubleshooting for common compiler, OpenMP, and import failures.