AIM-Harvard / pyradiomics

Open-source python package for the extraction of Radiomics features from 2D and 3D images and binary masks. Support: https://discourse.slicer.org/c/community/radiomics
http://pyradiomics.readthedocs.io/
BSD 3-Clause "New" or "Revised" License
1.11k stars 485 forks source link

[BUG] pypi version mismatch #828

Open jxchen01 opened 1 year ago

jxchen01 commented 1 year ago

Describe the bug when installing the package via pypi, there is a meta data mismatch:

Requested pyradiomics 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'

PyRadiomics configuration

N/A

To Reproduce

pip install pyradiomics with Python=3.9

Version (please complete the following information):

jxchen01 commented 1 year ago

further error message:

 Using cached pyradiomics-3.0.1.tar.gz (34.5 MB)
  Preparing metadata (setup.py) ... done
Requirement already satisfied: numpy>=1.9.2 in ./opt/anaconda3/envs/validomics_dev/lib/python3.8/site-packages (from pyradiomics) (1.24.3)
Collecting SimpleITK>=0.9.1
  Downloading SimpleITK-2.2.1-cp38-cp38-macosx_10_9_x86_64.whl (45.5 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 45.5/45.5 MB 9.1 MB/s eta 0:00:00
Collecting PyWavelets>=0.4.0
  Using cached PyWavelets-1.4.1-cp38-cp38-macosx_10_13_x86_64.whl (4.3 MB)
Collecting pykwalify>=1.6.0
  Using cached pykwalify-1.8.0-py2.py3-none-any.whl (24 kB)
Collecting six>=1.10.0
  Using cached six-1.16.0-py2.py3-none-any.whl (11 kB)
Collecting ruamel.yaml>=0.16.0
  Using cached ruamel.yaml-0.17.26-py3-none-any.whl (109 kB)
Collecting docopt>=0.6.2
  Using cached docopt-0.6.2.tar.gz (25 kB)
  Preparing metadata (setup.py) ... done
Collecting python-dateutil>=2.8.0
  Using cached python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB)
Collecting ruamel.yaml.clib>=0.2.7
  Downloading ruamel.yaml.clib-0.2.7-cp38-cp38-macosx_10_9_x86_64.whl (143 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 143.4/143.4 kB 4.9 MB/s eta 0:00:00
Building wheels for collected packages: pyradiomics, docopt
  Building wheel for pyradiomics (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py bdist_wheel did not run successfully.
  │ exit code: 1
  ╰─> [41 lines of output]
      /Users/jianxuchen/opt/anaconda3/envs/validomics_dev/lib/python3.8/site-packages/setuptools/dist.py:770: UserWarning: Usage of dash-separated 'description-file' will not be supported in future versions. Please use the underscore name 'description_file' instead
        warnings.warn(
      /Users/jianxuchen/opt/anaconda3/envs/validomics_dev/lib/python3.8/site-packages/setuptools/dist.py:529: UserWarning: Normalizing 'v3.0.1' to '3.0.1'
        warnings.warn(tmpl.format(**locals()))
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build/lib.macosx-10.9-x86_64-cpython-38
      creating build/lib.macosx-10.9-x86_64-cpython-38/radiomics
      copying radiomics/featureextractor.py -> build/lib.macosx-10.9-x86_64-cpython-38/radiomics
      copying radiomics/glcm.py -> build/lib.macosx-10.9-x86_64-cpython-38/radiomics
      copying radiomics/shape2D.py -> build/lib.macosx-10.9-x86_64-cpython-38/radiomics
      copying radiomics/_version.py -> build/lib.macosx-10.9-x86_64-cpython-38/radiomics
      copying radiomics/gldm.py -> build/lib.macosx-10.9-x86_64-cpython-38/radiomics
      copying radiomics/firstorder.py -> build/lib.macosx-10.9-x86_64-cpython-38/radiomics
      copying radiomics/__init__.py -> build/lib.macosx-10.9-x86_64-cpython-38/radiomics
      copying radiomics/ngtdm.py -> build/lib.macosx-10.9-x86_64-cpython-38/radiomics
      copying radiomics/glrlm.py -> build/lib.macosx-10.9-x86_64-cpython-38/radiomics
      copying radiomics/glszm.py -> build/lib.macosx-10.9-x86_64-cpython-38/radiomics
      copying radiomics/imageoperations.py -> build/lib.macosx-10.9-x86_64-cpython-38/radiomics
      copying radiomics/shape.py -> build/lib.macosx-10.9-x86_64-cpython-38/radiomics
      copying radiomics/generalinfo.py -> build/lib.macosx-10.9-x86_64-cpython-38/radiomics
      copying radiomics/base.py -> build/lib.macosx-10.9-x86_64-cpython-38/radiomics
      creating build/lib.macosx-10.9-x86_64-cpython-38/radiomics/scripts
      copying radiomics/scripts/__init__.py -> build/lib.macosx-10.9-x86_64-cpython-38/radiomics/scripts
      copying radiomics/scripts/voxel.py -> build/lib.macosx-10.9-x86_64-cpython-38/radiomics/scripts
      copying radiomics/scripts/segment.py -> build/lib.macosx-10.9-x86_64-cpython-38/radiomics/scripts
      creating build/lib.macosx-10.9-x86_64-cpython-38/radiomics/schemas
      copying radiomics/schemas/paramSchema.yaml -> build/lib.macosx-10.9-x86_64-cpython-38/radiomics/schemas
      copying radiomics/schemas/schemaFuncs.py -> build/lib.macosx-10.9-x86_64-cpython-38/radiomics/schemas
      UPDATING build/lib.macosx-10.9-x86_64-cpython-38/radiomics/_version.py
      set build/lib.macosx-10.9-x86_64-cpython-38/radiomics/_version.py to 'v3.0.1'
      running build_ext
      building 'radiomics._cmatrices' extension
      creating build/temp.macosx-10.9-x86_64-cpython-38
      creating build/temp.macosx-10.9-x86_64-cpython-38/radiomics
      creating build/temp.macosx-10.9-x86_64-cpython-38/radiomics/src
      gcc -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/Users/jianxuchen/opt/anaconda3/envs/validomics_dev/include -arch x86_64 -I/Users/jianxuchen/opt/anaconda3/envs/validomics_dev/include -arch x86_64 -I/Users/jianxuchen/opt/anaconda3/envs/validomics_dev/include/python3.8 -I/Users/jianxuchen/opt/anaconda3/envs/validomics_dev/lib/python3.8/site-packages/numpy/core/include -I/Users/jianxuchen/opt/anaconda3/envs/validomics_dev/include/python3.8 -c radiomics/src/_cmatrices.c -o build/temp.macosx-10.9-x86_64-cpython-38/radiomics/src/_cmatrices.o
      xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
      error: command '/usr/bin/gcc' 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 pyradiomics
  Running setup.py clean for pyradiomics
  Building wheel for docopt (setup.py) ... done
  Created wheel for docopt: filename=docopt-0.6.2-py2.py3-none-any.whl size=13705 sha256=dcdd99741564d8ed51da9385f913854283e5b4b9dc3c0bc9e7ec07a87a72f36e
  Stored in directory: /Users/jianxuchen/Library/Caches/pip/wheels/56/ea/58/ead137b087d9e326852a851351d1debf4ada529b6ac0ec4e8c
Successfully built docopt
Failed to build pyradiomics
Installing collected packages: SimpleITK, docopt, six, ruamel.yaml.clib, PyWavelets, ruamel.yaml, python-dateutil, pykwalify, pyradiomics
  Running setup.py install for pyradiomics ... error
  error: subprocess-exited-with-error

  × Running setup.py install for pyradiomics did not run successfully.
  │ exit code: 1
  ╰─> [43 lines of output]
      /Users/jianxuchen/opt/anaconda3/envs/validomics_dev/lib/python3.8/site-packages/setuptools/dist.py:770: UserWarning: Usage of dash-separated 'description-file' will not be supported in future versions. Please use the underscore name 'description_file' instead
        warnings.warn(
      /Users/jianxuchen/opt/anaconda3/envs/validomics_dev/lib/python3.8/site-packages/setuptools/dist.py:529: UserWarning: Normalizing 'v3.0.1' to '3.0.1'
        warnings.warn(tmpl.format(**locals()))
      running install
      /Users/jianxuchen/opt/anaconda3/envs/validomics_dev/lib/python3.8/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
        warnings.warn(
      running build
      running build_py
      creating build
      creating build/lib.macosx-10.9-x86_64-cpython-38
      creating build/lib.macosx-10.9-x86_64-cpython-38/radiomics
      copying radiomics/featureextractor.py -> build/lib.macosx-10.9-x86_64-cpython-38/radiomics
      copying radiomics/glcm.py -> build/lib.macosx-10.9-x86_64-cpython-38/radiomics
      copying radiomics/shape2D.py -> build/lib.macosx-10.9-x86_64-cpython-38/radiomics
      copying radiomics/_version.py -> build/lib.macosx-10.9-x86_64-cpython-38/radiomics
      copying radiomics/gldm.py -> build/lib.macosx-10.9-x86_64-cpython-38/radiomics
      copying radiomics/firstorder.py -> build/lib.macosx-10.9-x86_64-cpython-38/radiomics
      copying radiomics/__init__.py -> build/lib.macosx-10.9-x86_64-cpython-38/radiomics
      copying radiomics/ngtdm.py -> build/lib.macosx-10.9-x86_64-cpython-38/radiomics
      copying radiomics/glrlm.py -> build/lib.macosx-10.9-x86_64-cpython-38/radiomics
      copying radiomics/glszm.py -> build/lib.macosx-10.9-x86_64-cpython-38/radiomics
      copying radiomics/imageoperations.py -> build/lib.macosx-10.9-x86_64-cpython-38/radiomics
      copying radiomics/shape.py -> build/lib.macosx-10.9-x86_64-cpython-38/radiomics
      copying radiomics/generalinfo.py -> build/lib.macosx-10.9-x86_64-cpython-38/radiomics
      copying radiomics/base.py -> build/lib.macosx-10.9-x86_64-cpython-38/radiomics
      creating build/lib.macosx-10.9-x86_64-cpython-38/radiomics/scripts
      copying radiomics/scripts/__init__.py -> build/lib.macosx-10.9-x86_64-cpython-38/radiomics/scripts
      copying radiomics/scripts/voxel.py -> build/lib.macosx-10.9-x86_64-cpython-38/radiomics/scripts
      copying radiomics/scripts/segment.py -> build/lib.macosx-10.9-x86_64-cpython-38/radiomics/scripts
      creating build/lib.macosx-10.9-x86_64-cpython-38/radiomics/schemas
      copying radiomics/schemas/paramSchema.yaml -> build/lib.macosx-10.9-x86_64-cpython-38/radiomics/schemas
      copying radiomics/schemas/schemaFuncs.py -> build/lib.macosx-10.9-x86_64-cpython-38/radiomics/schemas
      UPDATING build/lib.macosx-10.9-x86_64-cpython-38/radiomics/_version.py
      set build/lib.macosx-10.9-x86_64-cpython-38/radiomics/_version.py to 'v3.0.1'
      running build_ext
      building 'radiomics._cmatrices' extension
      creating build/temp.macosx-10.9-x86_64-cpython-38
      creating build/temp.macosx-10.9-x86_64-cpython-38/radiomics
      creating build/temp.macosx-10.9-x86_64-cpython-38/radiomics/src
      gcc -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/Users/jianxuchen/opt/anaconda3/envs/validomics_dev/include -arch x86_64 -I/Users/jianxuchen/opt/anaconda3/envs/validomics_dev/include -arch x86_64 -I/Users/jianxuchen/opt/anaconda3/envs/validomics_dev/include/python3.8 -I/Users/jianxuchen/opt/anaconda3/envs/validomics_dev/lib/python3.8/site-packages/numpy/core/include -I/Users/jianxuchen/opt/anaconda3/envs/validomics_dev/include/python3.8 -c radiomics/src/_cmatrices.c -o build/temp.macosx-10.9-x86_64-cpython-38/radiomics/src/_cmatrices.o
      xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
      error: command '/usr/bin/gcc' failed with exit code 1
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: legacy-install-failure

× Encountered error while trying to install package.
╰─> pyradiomics

note: This is an issue with the package mentioned above, not pip.
hint: See above for output from the failure.
Solene81 commented 1 year ago

Hi yes we have the same issue, is there any workaround ?