Search code examples
pythonpipjupyter-notebookpackage

Can't install fitsio package. error: legacy-install-failure


I try to install a python package. It's fitsio. I work on Jupyter Notebook but I am a beginner.

I try pip install fitsio but I have an error like you see :

C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools>pip install fitsio
Collecting fitsio
  Using cached fitsio-1.1.7.tar.gz (5.0 MB)
  Preparing metadata (setup.py) ... done
Requirement already satisfied: numpy in c:\users\utilisateur\appdata\local\packages\pythonsoftwarefoundation.python.3.7_qbz5n2kfra8p0\localcache\local-packages\python37\site-packages (from fitsio) (1.21.6)
Using legacy 'setup.py install' for fitsio, since package 'wheel' is not installed.
Installing collected packages: fitsio
  Running setup.py install for fitsio ... error
  error: subprocess-exited-with-error

  × Running setup.py install for fitsio did not run successfully.
  │ exit code: 1
  ╰─> [64 lines of output]
      running install
      running build
      running build_py
      creating build
      creating build\lib.win-amd64-3.7
      creating build\lib.win-amd64-3.7\fitsio
      copying fitsio\fitslib.py -> build\lib.win-amd64-3.7\fitsio
      copying fitsio\header.py -> build\lib.win-amd64-3.7\fitsio
      copying fitsio\test.py -> build\lib.win-amd64-3.7\fitsio
      copying fitsio\util.py -> build\lib.win-amd64-3.7\fitsio
      copying fitsio\__init__.py -> build\lib.win-amd64-3.7\fitsio
      creating build\lib.win-amd64-3.7\fitsio\hdu
      copying fitsio\hdu\base.py -> build\lib.win-amd64-3.7\fitsio\hdu
      copying fitsio\hdu\image.py -> build\lib.win-amd64-3.7\fitsio\hdu
      copying fitsio\hdu\table.py -> build\lib.win-amd64-3.7\fitsio\hdu
      copying fitsio\hdu\__init__.py -> build\lib.win-amd64-3.7\fitsio\hdu
      running egg_info
      writing fitsio.egg-info\PKG-INFO
      writing dependency_links to fitsio.egg-info\dependency_links.txt
      writing requirements to fitsio.egg-info\requires.txt
      writing top-level names to fitsio.egg-info\top_level.txt
      reading manifest file 'fitsio.egg-info\SOURCES.txt'
      reading manifest template 'MANIFEST.in'
      writing manifest file 'fitsio.egg-info\SOURCES.txt'
      copying fitsio\fitsio_pywrap.c -> build\lib.win-amd64-3.7\fitsio
      creating build\lib.win-amd64-3.7\fitsio\test_images
      copying fitsio\test_images\test_gzip_compressed_image.fits.fz -> build\lib.win-amd64-3.7\fitsio\test_images
      running build_ext
      Traceback (most recent call last):
        File "<string>", line 36, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "C:\Users\UTILIS~1\AppData\Local\Temp\pip-install-pugpqzau\fitsio_302dc86b80ce48538f11d014b602f5f7\setup.py", line 284, in <module>
          cmdclass={"build_ext": build_ext_subclass}
        File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.2544.0_x64__qbz5n2kfra8p0\lib\site-packages\setuptools\__init__.py", line 144, in setup
          return distutils.core.setup(**attrs)
        File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.2544.0_x64__qbz5n2kfra8p0\lib\distutils\core.py", line 148, in setup
          dist.run_commands()
        File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.2544.0_x64__qbz5n2kfra8p0\lib\distutils\dist.py", line 966, in run_commands
          self.run_command(cmd)
        File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.2544.0_x64__qbz5n2kfra8p0\lib\distutils\dist.py", line 985, in run_command
          cmd_obj.run()
        File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.2544.0_x64__qbz5n2kfra8p0\lib\site-packages\setuptools\command\install.py", line 61, in run
          return orig.install.run(self)
        File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.2544.0_x64__qbz5n2kfra8p0\lib\distutils\command\install.py", line 545, in run
          self.run_command('build')
        File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.2544.0_x64__qbz5n2kfra8p0\lib\distutils\cmd.py", line 313, in run_command
          self.distribution.run_command(command)
        File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.2544.0_x64__qbz5n2kfra8p0\lib\distutils\dist.py", line 985, in run_command
          cmd_obj.run()
        File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.2544.0_x64__qbz5n2kfra8p0\lib\distutils\command\build.py", line 135, in run
          self.run_command(cmd_name)
        File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.2544.0_x64__qbz5n2kfra8p0\lib\distutils\cmd.py", line 313, in run_command
          self.distribution.run_command(command)
        File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.2544.0_x64__qbz5n2kfra8p0\lib\distutils\dist.py", line 985, in run_command
          cmd_obj.run()
        File "C:\Users\UTILIS~1\AppData\Local\Temp\pip-install-pugpqzau\fitsio_302dc86b80ce48538f11d014b602f5f7\setup.py", line 72, in run
          build_ext.run(self)
        File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.2544.0_x64__qbz5n2kfra8p0\lib\site-packages\setuptools\command\build_ext.py", line 87, in run
          _build_ext.run(self)
        File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.7_3.7.2544.0_x64__qbz5n2kfra8p0\lib\distutils\command\build_ext.py", line 340, in run
          self.build_extensions()
        File "C:\Users\UTILIS~1\AppData\Local\Temp\pip-install-pugpqzau\fitsio_302dc86b80ce48538f11d014b602f5f7\setup.py", line 80, in build_extensions
          CCold = self.compiler.compiler
      AttributeError: 'MSVCCompiler' object has no attribute 'compiler'
      [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.
╰─> fitsio

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

To resolve my problem I try to update python -m pip install –upgrade pip & pip install –upgrade wheel & pip install –upgrade setuptools.

Moreover I download Microsoft c++ build tools.

I install successfully cfitsio with Anaconda but when I write import cfitsio Jupyter notebook does not recognize the package.

Thanks for reading.


Solution

  • I counteracted the issue by using conda instead.

    conda install fitsio
    

    Since conda uses a pre-compiled version, it should in theory be fine.

    If conda fails to find fitsio, add the conda-forge channel by

    conda config --append channels conda-forge
    

    and then proceeding with the installation. Hope this helps!

    (https://github.com/esheldon/fitsio/issues/107#issuecomment-596701087)