It seems the standard pip install is broken on 3.11 and 3.12. Log below.
python 3.10 works fine. (This is using conda to create a new environment for each test case)
pip install imexam
Collecting imexam
Using cached imexam-0.9.1.tar.gz (21.4 MB)
Preparing metadata (setup.py) ... done
Collecting numpy>=1.14 (from imexam)
Downloading numpy-2.3.4-cp311-cp311-macosx_14_0_arm64.whl.metadata (62 kB)
Collecting scipy>=0.18 (from imexam)
Downloading scipy-1.16.3-cp311-cp311-macosx_14_0_arm64.whl.metadata (62 kB)
Collecting astropy>=3.0 (from imexam)
Downloading astropy-7.1.1-cp311-cp311-macosx_11_0_arm64.whl.metadata (10 kB)
Collecting matplotlib (from imexam)
Downloading matplotlib-3.10.7-cp311-cp311-macosx_11_0_arm64.whl.metadata (11 kB)
Collecting pyerfa>=2.0.1.1 (from astropy>=3.0->imexam)
Using cached pyerfa-2.0.1.5-cp39-abi3-macosx_11_0_arm64.whl.metadata (5.7 kB)
Collecting astropy-iers-data>=0.2025.9.29.0.35.48 (from astropy>=3.0->imexam)
Using cached astropy_iers_data-0.2025.10.27.0.39.10-py3-none-any.whl.metadata (3.4 kB)
Collecting PyYAML>=6.0.0 (from astropy>=3.0->imexam)
Downloading pyyaml-6.0.3-cp311-cp311-macosx_11_0_arm64.whl.metadata (2.4 kB)
Collecting packaging>=22.0.0 (from astropy>=3.0->imexam)
Using cached packaging-25.0-py3-none-any.whl.metadata (3.3 kB)
Collecting contourpy>=1.0.1 (from matplotlib->imexam)
Downloading contourpy-1.3.3-cp311-cp311-macosx_11_0_arm64.whl.metadata (5.5 kB)
Collecting cycler>=0.10 (from matplotlib->imexam)
Using cached cycler-0.12.1-py3-none-any.whl.metadata (3.8 kB)
Collecting fonttools>=4.22.0 (from matplotlib->imexam)
Downloading fonttools-4.60.1-cp311-cp311-macosx_10_9_universal2.whl.metadata (112 kB)
Collecting kiwisolver>=1.3.1 (from matplotlib->imexam)
Downloading kiwisolver-1.4.9-cp311-cp311-macosx_11_0_arm64.whl.metadata (6.3 kB)
Collecting pillow>=8 (from matplotlib->imexam)
Downloading pillow-12.0.0-cp311-cp311-macosx_11_0_arm64.whl.metadata (8.8 kB)
Collecting pyparsing>=3 (from matplotlib->imexam)
Using cached pyparsing-3.2.5-py3-none-any.whl.metadata (5.0 kB)
Collecting python-dateutil>=2.7 (from matplotlib->imexam)
Using cached python_dateutil-2.9.0.post0-py2.py3-none-any.whl.metadata (8.4 kB)
Collecting six>=1.5 (from python-dateutil>=2.7->matplotlib->imexam)
Using cached six-1.17.0-py2.py3-none-any.whl.metadata (1.7 kB)
Downloading astropy-7.1.1-cp311-cp311-macosx_11_0_arm64.whl (6.3 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6.3/6.3 MB 5.0 MB/s 0:00:01
Using cached astropy_iers_data-0.2025.10.27.0.39.10-py3-none-any.whl (2.0 MB)
Downloading numpy-2.3.4-cp311-cp311-macosx_14_0_arm64.whl (5.4 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.4/5.4 MB 12.7 MB/s 0:00:00
Using cached packaging-25.0-py3-none-any.whl (66 kB)
Using cached pyerfa-2.0.1.5-cp39-abi3-macosx_11_0_arm64.whl (329 kB)
Downloading pyyaml-6.0.3-cp311-cp311-macosx_11_0_arm64.whl (175 kB)
Downloading scipy-1.16.3-cp311-cp311-macosx_14_0_arm64.whl (20.9 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 20.9/20.9 MB 11.5 MB/s 0:00:01
Downloading matplotlib-3.10.7-cp311-cp311-macosx_11_0_arm64.whl (8.1 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 8.1/8.1 MB 12.5 MB/s 0:00:00
Downloading contourpy-1.3.3-cp311-cp311-macosx_11_0_arm64.whl (270 kB)
Using cached cycler-0.12.1-py3-none-any.whl (8.3 kB)
Downloading fonttools-4.60.1-cp311-cp311-macosx_10_9_universal2.whl (2.8 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.8/2.8 MB 12.4 MB/s 0:00:00
Downloading kiwisolver-1.4.9-cp311-cp311-macosx_11_0_arm64.whl (65 kB)
Downloading pillow-12.0.0-cp311-cp311-macosx_11_0_arm64.whl (4.7 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.7/4.7 MB 12.3 MB/s 0:00:00
Using cached pyparsing-3.2.5-py3-none-any.whl (113 kB)
Using cached python_dateutil-2.9.0.post0-py2.py3-none-any.whl (229 kB)
Using cached six-1.17.0-py2.py3-none-any.whl (11 kB)
Building wheels for collected packages: imexam
DEPRECATION: Building 'imexam' using the legacy setup.py bdist_wheel mechanism, which will be removed in a future version. pip 25.3 will enforce this behaviour change. A possible replacement is to use the standardized build interface by setting the `--use-pep517` option, (possibly combined with `--no-build-isolation`), or adding a `pyproject.toml` file to the source tree of 'imexam'. Discussion can be found at https://github.com/pypa/pip/issues/6334
Building wheel for imexam (setup.py) ... error
error: subprocess-exited-with-error
× python setup.py bdist_wheel did not run successfully.
│ exit code: 1
╰─> [112 lines of output]
/private/var/folders/qj/kp1rmfq540x4d1lz8st1t4m40000gn/T/pip-install-zvfm8qki/imexam_bda7456e24fe4d6e8fff39dd4471d94b/setup.py:11: SetuptoolsDeprecationWarning: The test command is disabled and references to it are deprecated.
!!
********************************************************************************
Please remove any references to `setuptools.command.test` in all supported versions of the affected package.
This deprecation is overdue, please update your project and remove deprecated
calls to avoid build errors in the future.
********************************************************************************
!!
from setuptools.command.test import test as TestCommand
Sphinx is not installed, can't build documents!!
Cython not found
/opt/anaconda3/envs/imexam3/lib/python3.11/site-packages/setuptools/dist.py:599: SetuptoolsDeprecationWarning: Invalid dash-separated key 'description-file' in 'metadata' (setup.cfg), please use the underscore name 'description_file' instead.
!!
********************************************************************************
Usage of dash-separated 'description-file' will not be supported in future
versions. Please use the underscore name 'description_file' instead.
By 2026-Mar-03, you need to update your project and remove deprecated calls
or your builds will no longer be supported.
See https://setuptools.pypa.io/en/latest/userguide/declarative_config.html for details.
********************************************************************************
!!
opt = self._enforce_underscore(opt, section)
/opt/anaconda3/envs/imexam3/lib/python3.11/site-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated.
!!
********************************************************************************
Please consider removing the following classifiers in favor of a SPDX license expression:
License :: OSI Approved :: BSD License
See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details.
********************************************************************************
!!
self._finalize_license_expression()
/opt/anaconda3/envs/imexam3/lib/python3.11/site-packages/setuptools/__init__.py:92: _DeprecatedInstaller: setuptools.installer and fetch_build_eggs are deprecated.
!!
********************************************************************************
Requirements should be satisfied by a PEP 517 installer.
If you are using pip, you can try `pip install --use-pep517`.
This deprecation is overdue, please update your project and remove deprecated
calls to avoid build errors in the future.
********************************************************************************
!!
dist.fetch_build_eggs(dist.setup_requires)
/opt/anaconda3/envs/imexam3/lib/python3.11/site-packages/setuptools/dist.py:804: DistDeprecationWarning: use_2to3 is ignored.
ep.load()(self, ep.name, value)
/opt/anaconda3/envs/imexam3/lib/python3.11/site-packages/setuptools/dist.py:599: SetuptoolsDeprecationWarning: Invalid dash-separated key 'description-file' in 'metadata' (setup.cfg), please use the underscore name 'description_file' instead.
!!
********************************************************************************
Usage of dash-separated 'description-file' will not be supported in future
versions. Please use the underscore name 'description_file' instead.
(Affected: imexam).
By 2026-Mar-03, you need to update your project and remove deprecated calls
or your builds will no longer be supported.
See https://setuptools.pypa.io/en/latest/userguide/declarative_config.html for details.
********************************************************************************
!!
opt = self._enforce_underscore(opt, section)
running bdist_wheel
running build
running build_py
creating build/lib.macosx-11.0-arm64-cpython-311/imexam
copying imexam/xpa_wrap.py -> build/lib.macosx-11.0-arm64-cpython-311/imexam
copying imexam/ds9_viewer.py -> build/lib.macosx-11.0-arm64-cpython-311/imexam
copying imexam/connect.py -> build/lib.macosx-11.0-arm64-cpython-311/imexam
copying imexam/util.py -> build/lib.macosx-11.0-arm64-cpython-311/imexam
copying imexam/_astropy_init.py -> build/lib.macosx-11.0-arm64-cpython-311/imexam
copying imexam/math_helper.py -> build/lib.macosx-11.0-arm64-cpython-311/imexam
copying imexam/ginga_viewer.py -> build/lib.macosx-11.0-arm64-cpython-311/imexam
copying imexam/imexam_defpars.py -> build/lib.macosx-11.0-arm64-cpython-311/imexam
copying imexam/__init__.py -> build/lib.macosx-11.0-arm64-cpython-311/imexam
copying imexam/imexamine.py -> build/lib.macosx-11.0-arm64-cpython-311/imexam
running build_ext
building 'imexam.imexamxpa' extension
creating build/temp.macosx-11.0-arm64-cpython-311/cextern/xpa
creating build/temp.macosx-11.0-arm64-cpython-311/wrappers
clang -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /opt/anaconda3/envs/imexam3/include -arch arm64 -fPIC -O2 -isystem /opt/anaconda3/envs/imexam3/include -arch arm64 -DHAVE_CONFIG_H=1 -I./cextern/xpa/ -I/opt/anaconda3/envs/imexam3/include/python3.11 -c ./cextern/xpa/acl.c -o build/temp.macosx-11.0-arm64-cpython-311/cextern/xpa/acl.o
clang -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /opt/anaconda3/envs/imexam3/include -arch arm64 -fPIC -O2 -isystem /opt/anaconda3/envs/imexam3/include -arch arm64 -DHAVE_CONFIG_H=1 -I./cextern/xpa/ -I/opt/anaconda3/envs/imexam3/include/python3.11 -c ./cextern/xpa/client.c -o build/temp.macosx-11.0-arm64-cpython-311/cextern/xpa/client.o
clang -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /opt/anaconda3/envs/imexam3/include -arch arm64 -fPIC -O2 -isystem /opt/anaconda3/envs/imexam3/include -arch arm64 -DHAVE_CONFIG_H=1 -I./cextern/xpa/ -I/opt/anaconda3/envs/imexam3/include/python3.11 -c ./cextern/xpa/clipboard.c -o build/temp.macosx-11.0-arm64-cpython-311/cextern/xpa/clipboard.o
clang -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /opt/anaconda3/envs/imexam3/include -arch arm64 -fPIC -O2 -isystem /opt/anaconda3/envs/imexam3/include -arch arm64 -DHAVE_CONFIG_H=1 -I./cextern/xpa/ -I/opt/anaconda3/envs/imexam3/include/python3.11 -c ./cextern/xpa/command.c -o build/temp.macosx-11.0-arm64-cpython-311/cextern/xpa/command.o
clang -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /opt/anaconda3/envs/imexam3/include -arch arm64 -fPIC -O2 -isystem /opt/anaconda3/envs/imexam3/include -arch arm64 -DHAVE_CONFIG_H=1 -I./cextern/xpa/ -I/opt/anaconda3/envs/imexam3/include/python3.11 -c ./cextern/xpa/find.c -o build/temp.macosx-11.0-arm64-cpython-311/cextern/xpa/find.o
clang -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /opt/anaconda3/envs/imexam3/include -arch arm64 -fPIC -O2 -isystem /opt/anaconda3/envs/imexam3/include -arch arm64 -DHAVE_CONFIG_H=1 -I./cextern/xpa/ -I/opt/anaconda3/envs/imexam3/include/python3.11 -c ./cextern/xpa/port.c -o build/temp.macosx-11.0-arm64-cpython-311/cextern/xpa/port.o
clang -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /opt/anaconda3/envs/imexam3/include -arch arm64 -fPIC -O2 -isystem /opt/anaconda3/envs/imexam3/include -arch arm64 -DHAVE_CONFIG_H=1 -I./cextern/xpa/ -I/opt/anaconda3/envs/imexam3/include/python3.11 -c ./cextern/xpa/remote.c -o build/temp.macosx-11.0-arm64-cpython-311/cextern/xpa/remote.o
clang -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /opt/anaconda3/envs/imexam3/include -arch arm64 -fPIC -O2 -isystem /opt/anaconda3/envs/imexam3/include -arch arm64 -DHAVE_CONFIG_H=1 -I./cextern/xpa/ -I/opt/anaconda3/envs/imexam3/include/python3.11 -c ./cextern/xpa/tcp.c -o build/temp.macosx-11.0-arm64-cpython-311/cextern/xpa/tcp.o
clang -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /opt/anaconda3/envs/imexam3/include -arch arm64 -fPIC -O2 -isystem /opt/anaconda3/envs/imexam3/include -arch arm64 -DHAVE_CONFIG_H=1 -I./cextern/xpa/ -I/opt/anaconda3/envs/imexam3/include/python3.11 -c ./cextern/xpa/timedconn.c -o build/temp.macosx-11.0-arm64-cpython-311/cextern/xpa/timedconn.o
clang -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /opt/anaconda3/envs/imexam3/include -arch arm64 -fPIC -O2 -isystem /opt/anaconda3/envs/imexam3/include -arch arm64 -DHAVE_CONFIG_H=1 -I./cextern/xpa/ -I/opt/anaconda3/envs/imexam3/include/python3.11 -c ./cextern/xpa/word.c -o build/temp.macosx-11.0-arm64-cpython-311/cextern/xpa/word.o
clang -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /opt/anaconda3/envs/imexam3/include -arch arm64 -fPIC -O2 -isystem /opt/anaconda3/envs/imexam3/include -arch arm64 -DHAVE_CONFIG_H=1 -I./cextern/xpa/ -I/opt/anaconda3/envs/imexam3/include/python3.11 -c ./cextern/xpa/xalloc.c -o build/temp.macosx-11.0-arm64-cpython-311/cextern/xpa/xalloc.o
clang -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /opt/anaconda3/envs/imexam3/include -arch arm64 -fPIC -O2 -isystem /opt/anaconda3/envs/imexam3/include -arch arm64 -DHAVE_CONFIG_H=1 -I./cextern/xpa/ -I/opt/anaconda3/envs/imexam3/include/python3.11 -c ./cextern/xpa/xlaunch.c -o build/temp.macosx-11.0-arm64-cpython-311/cextern/xpa/xlaunch.o
clang -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /opt/anaconda3/envs/imexam3/include -arch arm64 -fPIC -O2 -isystem /opt/anaconda3/envs/imexam3/include -arch arm64 -DHAVE_CONFIG_H=1 -I./cextern/xpa/ -I/opt/anaconda3/envs/imexam3/include/python3.11 -c ./cextern/xpa/xpa.c -o build/temp.macosx-11.0-arm64-cpython-311/cextern/xpa/xpa.o
clang -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /opt/anaconda3/envs/imexam3/include -arch arm64 -fPIC -O2 -isystem /opt/anaconda3/envs/imexam3/include -arch arm64 -DHAVE_CONFIG_H=1 -I./cextern/xpa/ -I/opt/anaconda3/envs/imexam3/include/python3.11 -c ./cextern/xpa/xpaio.c -o build/temp.macosx-11.0-arm64-cpython-311/cextern/xpa/xpaio.o
clang -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /opt/anaconda3/envs/imexam3/include -arch arm64 -fPIC -O2 -isystem /opt/anaconda3/envs/imexam3/include -arch arm64 -DHAVE_CONFIG_H=1 -I./cextern/xpa/ -I/opt/anaconda3/envs/imexam3/include/python3.11 -c wrappers/xpa.c -o build/temp.macosx-11.0-arm64-cpython-311/wrappers/xpa.o
wrappers/xpa.c:236:12: fatal error: 'longintrepr.h' file not found
236 | #include "longintrepr.h"
| ^~~~~~~~~~~~~~~
1 error generated.
error: command '/usr/bin/clang' failed with exit code 1
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for imexam
Running setup.py clean for imexam
Failed to build imexam
error: failed-wheel-build-for-install
× Failed to build installable wheels for some pyproject.toml based projects
╰─> imexam
It seems the standard pip install is broken on 3.11 and 3.12. Log below.
python 3.10 works fine. (This is using conda to create a new environment for each test case)
Here is the 3.11 log: