Skip to content

Unable to install pyradiomics for python 3.11 #932

Description

@sarthakpati

@JoostJM is this issue done? I am seeing this on the latest 3.1.0 release as well (on both Windows and Linux systems):

$> pip install pyradiomics==3.1.0
Using Python 3.11.13 environment at: venv
Resolved 10 packages in 29ms
  × Failed to build `pyradiomics==3.1.0`
  ├─▶ The build backend returned an error
  ╰─▶ Call to `setuptools.build_meta.build_wheel` failed (exit status: 1)

      [stdout]
      Failed to load config from /hm/sp/.cache/uv/sdists-v9/pypi/pyradiomics/3.1.0/ElkUNvx-H6Fm-s9qjePzt/src/pyproject.toml: 'tool'
      Try to load it from setup.cfg
      running bdist_wheel
      running build
      running build_py
      Failed to load config from /hm/sp/.cache/uv/sdists-v9/pypi/pyradiomics/3.1.0/ElkUNvx-H6Fm-s9qjePzt/src/pyproject.toml: 'tool'
      Try to load it from setup.cfg
      Failed to load config from /hm/sp/.cache/uv/sdists-v9/pypi/pyradiomics/3.1.0/ElkUNvx-H6Fm-s9qjePzt/src/pyproject.toml: 'tool'
      Try to load it from setup.cfg
      copying radiomics/glszm.py -> build/lib.linux-x86_64-cpython-311/radiomics
      copying radiomics/generalinfo.py -> build/lib.linux-x86_64-cpython-311/radiomics
      copying radiomics/shape.py -> build/lib.linux-x86_64-cpython-311/radiomics
      copying radiomics/featureextractor.py -> build/lib.linux-x86_64-cpython-311/radiomics
      copying radiomics/gldm.py -> build/lib.linux-x86_64-cpython-311/radiomics
      copying radiomics/shape2D.py -> build/lib.linux-x86_64-cpython-311/radiomics
      copying radiomics/ngtdm.py -> build/lib.linux-x86_64-cpython-311/radiomics
      copying radiomics/glcm.py -> build/lib.linux-x86_64-cpython-311/radiomics
      copying radiomics/base.py -> build/lib.linux-x86_64-cpython-311/radiomics
      copying radiomics/glrlm.py -> build/lib.linux-x86_64-cpython-311/radiomics
      copying radiomics/imageoperations.py -> build/lib.linux-x86_64-cpython-311/radiomics
      copying radiomics/__init__.py -> build/lib.linux-x86_64-cpython-311/radiomics
      copying radiomics/firstorder.py -> build/lib.linux-x86_64-cpython-311/radiomics
      copying radiomics/scripts/segment.py -> build/lib.linux-x86_64-cpython-311/radiomics/scripts
      copying radiomics/scripts/voxel.py -> build/lib.linux-x86_64-cpython-311/radiomics/scripts
      copying radiomics/scripts/__init__.py -> build/lib.linux-x86_64-cpython-311/radiomics/scripts
      copying radiomics/schemas/paramSchema.yaml -> build/lib.linux-x86_64-cpython-311/radiomics/schemas
      copying radiomics/schemas/schemaFuncs.py -> build/lib.linux-x86_64-cpython-311/radiomics/schemas
      UPDATING build/lib.linux-x86_64-cpython-311/radiomics/_version.py
      set build/lib.linux-x86_64-cpython-311/radiomics/_version.py to 'v3.1.0'
      running build_ext
      Failed to load config from /hm/sp/.cache/uv/sdists-v9/pypi/pyradiomics/3.1.0/ElkUNvx-H6Fm-s9qjePzt/src/pyproject.toml: 'tool'
      Try to load it from setup.cfg
      Failed to load config from /hm/sp/.cache/uv/sdists-v9/pypi/pyradiomics/3.1.0/ElkUNvx-H6Fm-s9qjePzt/src/pyproject.toml: 'tool'
      Try to load it from setup.cfg
      building 'radiomics._cmatrices' extension
      gcc -pthread -B /hm/sp/proj/venv/compiler_compat -DNDEBUG -fwrapv -O2 -Wall -fPIC -O2 -isystem /hm/sp/proj/venv/include
      -fPIC -O2 -isystem /hm/sp/proj/venv/include -fPIC -I/hm/sp/proj/venv/include/python3.11
      -I/hm/sp/.cache/uv/builds-v0/.tmprzIeg3/lib/python3.11/site-packages/numpy/_core/include -I/hm/sp/.cache/uv/builds-v0/.tmprzIeg3/include
      -I/hm/sp/proj/venv/include/python3.11 -c radiomics/src/_cmatrices.c -o build/temp.linux-x86_64-cpython-311/radiomics/src/_cmatrices.o

      [stderr]
      /hm/sp/.cache/uv/builds-v0/.tmprzIeg3/lib/python3.11/site-packages/setuptools/dist.py:332: InformationOnly: Normalizing 'v3.1.0' to '3.1.0'
        self.metadata.version = self._normalize_version(self.metadata.version)
      /hm/sp/.cache/uv/builds-v0/.tmprzIeg3/lib/python3.11/site-packages/setuptools/config/_apply_pyprojecttoml.py:82: SetuptoolsDeprecationWarning: `project.license` as a TOML table is deprecated
      !!

              ********************************************************************************
              Please use a simple string containing a SPDX expression for `project.license`. You can also use `project.license-files`. (Both options available on setuptools>=77.0.0).

              By 2026-Feb-18, you need to update your project and remove deprecated calls
              or your builds will no longer be supported.

              See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details.
              ********************************************************************************

      !!
        corresp(dist, value, root_dir)
      /hm/sp/.cache/uv/builds-v0/.tmprzIeg3/lib/python3.11/site-packages/setuptools/config/_apply_pyprojecttoml.py:82: SetuptoolsWarning: `install_requires` overwritten in `pyproject.toml`
      (dependencies)
        corresp(dist, value, root_dir)
      /hm/sp/.cache/uv/builds-v0/.tmprzIeg3/lib/python3.11/site-packages/setuptools/config/_apply_pyprojecttoml.py:61: 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.
              ********************************************************************************

      !!
        dist._finalize_license_expression()
      /hm/sp/.cache/uv/builds-v0/.tmprzIeg3/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()
      radiomics/src/_cmatrices.c:6:10: fatal error: cmatrices.h: No such file or directory
          6 | #include "cmatrices.h"
            |          ^~~~~~~~~~~~~
      compilation terminated.
      error: command '/usr/bin/gcc' failed with exit code 1

      hint: This error likely indicates that you need to install a library that provides "cmatrices.h" for `pyradiomics@3.0.1a1`

Originally posted by @sarthakpati in #829

This was using python-3.11. I have tried installing pyradiomics using a fresh environment for python-3.10, with different errors:

(C:\Projects\radiomics\venv) PS C:\Projects\radiomics> conda create -p ./venv310 python=3.10 -y
Channels:
 - defaults
Platform: win-64
Collecting package metadata (repodata.json): done
Solving environment: done


==> WARNING: A newer version of conda exists. <==
    current version: 25.1.1
    latest version: 25.5.1

Please update conda by running

    $ conda update -n base -c defaults conda



## Package Plan ##

  environment location: C:\Projects\radiomics\venv310

  added / updated specs:
    - python=3.10


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    python-3.10.18             |       h981015d_0        16.2 MB
    setuptools-78.1.1          |  py310haa95532_0         1.7 MB
    wheel-0.45.1               |  py310haa95532_0         145 KB
    ------------------------------------------------------------
                                           Total:        18.0 MB

The following NEW packages will be INSTALLED:

  bzip2              pkgs/main/win-64::bzip2-1.0.8-h2bbff1b_6
  ca-certificates    pkgs/main/win-64::ca-certificates-2025.2.25-haa95532_0
  expat              pkgs/main/win-64::expat-2.7.1-h8ddb27b_0
  libffi             pkgs/main/win-64::libffi-3.4.4-hd77b12b_1
  openssl            pkgs/main/win-64::openssl-3.0.16-h3f729d1_0
  pip                pkgs/main/noarch::pip-25.1-pyhc872135_2
  python             pkgs/main/win-64::python-3.10.18-h981015d_0
  setuptools         pkgs/main/win-64::setuptools-78.1.1-py310haa95532_0
  sqlite             pkgs/main/win-64::sqlite-3.50.2-hda9a48d_0
  tk                 pkgs/main/win-64::tk-8.6.14-h5e9d12e_1
  tzdata             pkgs/main/noarch::tzdata-2025b-h04d1e81_0
  ucrt               pkgs/main/win-64::ucrt-10.0.22621.0-haa95532_0
  vc                 pkgs/main/win-64::vc-14.3-h2df5915_10
  vc14_runtime       pkgs/main/win-64::vc14_runtime-14.44.35208-h4927774_10
  vs2015_runtime     pkgs/main/win-64::vs2015_runtime-14.44.35208-ha6b5a95_10
  wheel              pkgs/main/win-64::wheel-0.45.1-py310haa95532_0
  xz                 pkgs/main/win-64::xz-5.6.4-h4754444_1
  zlib               pkgs/main/win-64::zlib-1.2.13-h8cc25b3_1



Downloading and Extracting Packages:

Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
#     $ conda activate C:\Projects\radiomics\venv310
#
# To deactivate an active environment, use
#
#     $ conda deactivate

(C:\Projects\radiomics\venv) PS C:\Projects\radiomics> conda activate ./venv310
(C:\Projects\radiomics\venv310) PS C:\Projects\radiomics> pip install pyradiomics==3.1.0
Collecting pyradiomics==3.1.0
  Downloading pyradiomics-3.1.0.tar.gz (34.5 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 34.5/34.5 MB 33.2 MB/s eta 0:00:00
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
  WARNING: Requested pyradiomics==3.1.0 from https://files.pythonhosted.org/packages/03/c1/20fc2c50ab1e3304da36d866042a1905a2b05a1431ece35448ab6b4578f2/pyradiomics-3.1.0.tar.gz, but installing version 3.0.1a1
Discarding https://files.pythonhosted.org/packages/03/c1/20fc2c50ab1e3304da36d866042a1905a2b05a1431ece35448ab6b4578f2/pyradiomics-3.1.0.tar.gz (from https://pypi.org/simple/pyradiomics/): Requested pyradiomics==3.1.0 from https://files.pythonhosted.org/packages/03/c1/20fc2c50ab1e3304da36d866042a1905a2b05a1431ece35448ab6b4578f2/pyradiomics-3.1.0.tar.gz has inconsistent version: expected '3.1.0', but metadata has '3.0.1a1'
ERROR: Could not find a version that satisfies the requirement pyradiomics==3.1.0 (from versions: 2.0.0, 2.0.1, 2.1.0, 2.1.1, 2.1.2, 2.2.0, 3.0, 3.0.1a3, 3.0.1, 3.1.0)
ERROR: No matching distribution found for pyradiomics==3.1.0
(C:\Projects\radiomics\venv310) PS C:\Projects\radiomics> pip install pyradiomics==3^C
(C:\Projects\radiomics\venv310) PS C:\Projects\radiomics>  & 'c:\Projects\PyRanker\venv\python.exe' 'c:\Users\sarth\.vscode\extensions\ms-python.debugpy-2025.10.0-win32-x64\bundled\libs\debugpy\launcher' '60067' '--' 'C:\Projects\PyRanker\pyranker\cli\run.py' './data/' './data/output_6' ^C
(C:\Projects\radiomics\venv310) PS C:\Projects\radiomics> ^C
(C:\Projects\radiomics\venv310) PS C:\Projects\radiomics> pip install pyradiomics==3.0.1
Collecting pyradiomics==3.0.1
  Downloading pyradiomics-3.0.1.tar.gz (34.5 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 34.5/34.5 MB 33.7 MB/s eta 0:00:00
  Preparing metadata (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> [6 lines of output]
      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 35, in <module>
        File "C:\Users\sarth\AppData\Local\Temp\pip-install-3se_z5cn\pyradiomics_80042bfca92c43449d22217cb2c4884a\setup.py", line 7, in <module>
          import numpy
      ModuleNotFoundError: No module named 'numpy'
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.
(C:\Projects\radiomics\venv310) PS C:\Projects\radiomics> pip install pyradiomics==3.0
Collecting pyradiomics==3.0
  Downloading pyradiomics-3.0.tar.gz (34.5 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 34.5/34.5 MB 30.0 MB/s eta 0:00:00
  Preparing metadata (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> [6 lines of output]
      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 35, in <module>
        File "C:\Users\sarth\AppData\Local\Temp\pip-install-lp8cju04\pyradiomics_5d9b47641abb4a468f06cca33202ce11\setup.py", line 7, in <module>
          import numpy
      ModuleNotFoundError: No module named 'numpy'
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.
(C:\Projects\radiomics\venv310) PS C:\Projects\radiomics> pip install pyradiomics==3.1
Collecting pyradiomics==3.1
  Using cached pyradiomics-3.1.0.tar.gz (34.5 MB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
  WARNING: Requested pyradiomics==3.1 from https://files.pythonhosted.org/packages/03/c1/20fc2c50ab1e3304da36d866042a1905a2b05a1431ece35448ab6b4578f2/pyradiomics-3.1.0.tar.gz, but installing version 3.0.1a1
Discarding https://files.pythonhosted.org/packages/03/c1/20fc2c50ab1e3304da36d866042a1905a2b05a1431ece35448ab6b4578f2/pyradiomics-3.1.0.tar.gz (from https://pypi.org/simple/pyradiomics/): Requested pyradiomics==3.1 from https://files.pythonhosted.org/packages/03/c1/20fc2c50ab1e3304da36d866042a1905a2b05a1431ece35448ab6b4578f2/pyradiomics-3.1.0.tar.gz has inconsistent version: expected '3.1.0', but metadata has '3.0.1a1'
ERROR: Could not find a version that satisfies the requirement pyradiomics==3.1 (from versions: 2.0.0, 2.0.1, 2.1.0, 2.1.1, 2.1.2, 2.2.0, 3.0, 3.0.1a3, 3.0.1, 3.1.0)
ERROR: No matching distribution found for pyradiomics==3.1

Here's some debugging information for you:

Platform: Windows-10-10.0.26100-SP0
Machine: AMD64
Processor: Intel64 Family 6 Model 165 Stepping 2, GenuineIntel
Architecture: 64bit WindowsPE

Let me know what else you'd need.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions