Skip to content

Can't do clean pip install of kaiju #2

Description

@imedan

I have run into an issue where it is not possible to install kaiju from a fresh python environment. When doing so, I get the following error:

(test_kaiju) (base) Ilijas-Air:~ imedan$ pip install sdss-kaiju
Collecting sdss-kaiju
  Using cached sdss-kaiju-1.3.1.tar.gz (2.3 MB)
  Preparing metadata (setup.py) ... error
  error: subprocess-exited-with-error
  
  × python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> [59 lines of output]
      /Users/imedan/test_kaiju/lib/python3.9/site-packages/setuptools/installer.py:27: SetuptoolsDeprecationWarning: setuptools.installer is deprecated. Requirements should be satisfied by a PEP 517 installer.
        warnings.warn(
      WARNING: The wheel package is not available.
      WARNING: The wheel package is not available.
        error: subprocess-exited-with-error
      
        × python setup.py bdist_wheel did not run successfully.
        │ exit code: 1
        ╰─> [11 lines of output]
            /Users/imedan/test_kaiju/lib/python3.9/site-packages/setuptools/config/setupcfg.py:508: SetuptoolsDeprecationWarning: The license_file parameter is deprecated, use license_files instead.
              warnings.warn(msg, warning_class)
            /Users/imedan/test_kaiju/lib/python3.9/site-packages/setuptools/installer.py:27: SetuptoolsDeprecationWarning: setuptools.installer is deprecated. Requirements should be satisfied by a PEP 517 installer.
              warnings.warn(
            WARNING: The wheel package is not available.
            usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
               or: setup.py --help [cmd1 cmd2 ...]
               or: setup.py --help-commands
               or: setup.py cmd --help
      
            error: invalid command 'bdist_wheel'
            [end of output]
      
        note: This error originates from a subprocess, and is likely not a problem with pip.
        ERROR: Failed building wheel for sdss-coordio
      ERROR: Failed to build one or more wheels
      Traceback (most recent call last):
        File "/Users/imedan/test_kaiju/lib/python3.9/site-packages/setuptools/installer.py", line 82, in fetch_build_egg
          subprocess.check_call(cmd)
        File "/usr/local/Cellar/python@3.9/3.9.15/Frameworks/Python.framework/Versions/3.9/lib/python3.9/subprocess.py", line 373, in check_call
          raise CalledProcessError(retcode, cmd)
      subprocess.CalledProcessError: Command '['/Users/imedan/test_kaiju/bin/python3.9', '-m', 'pip', '--disable-pip-version-check', 'wheel', '--no-deps', '-w', '/var/folders/rd/fql1ldxn3cxdkqnfrzm9y34r0000gn/T/tmpm4mob429', '--quiet', 'sdss-coordio>=1.2.1']' returned non-zero exit status 1.
      
      The above exception was the direct cause of the following exception:
      
      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "/private/var/folders/rd/fql1ldxn3cxdkqnfrzm9y34r0000gn/T/pip-install-utmdascy/sdss-kaiju_fa05f7d39f3949fda299daa8e6f65ef6/setup.py", line 135, in <module>
          runSetup(packages, requirements)
        File "/private/var/folders/rd/fql1ldxn3cxdkqnfrzm9y34r0000gn/T/pip-install-utmdascy/sdss-kaiju_fa05f7d39f3949fda299daa8e6f65ef6/setup.py", line 100, in runSetup
          setup(
        File "/Users/imedan/test_kaiju/lib/python3.9/site-packages/setuptools/__init__.py", line 86, in setup
          _install_setup_requires(attrs)
        File "/Users/imedan/test_kaiju/lib/python3.9/site-packages/setuptools/__init__.py", line 80, in _install_setup_requires
          dist.fetch_build_eggs(dist.setup_requires)
        File "/Users/imedan/test_kaiju/lib/python3.9/site-packages/setuptools/dist.py", line 875, in fetch_build_eggs
          resolved_dists = pkg_resources.working_set.resolve(
        File "/Users/imedan/test_kaiju/lib/python3.9/site-packages/pkg_resources/__init__.py", line 789, in resolve
          dist = best[req.key] = env.best_match(
        File "/Users/imedan/test_kaiju/lib/python3.9/site-packages/pkg_resources/__init__.py", line 1075, in best_match
          return self.obtain(req, installer)
        File "/Users/imedan/test_kaiju/lib/python3.9/site-packages/pkg_resources/__init__.py", line 1087, in obtain
          return installer(requirement)
        File "/Users/imedan/test_kaiju/lib/python3.9/site-packages/setuptools/dist.py", line 945, in fetch_build_egg
          return fetch_build_egg(self, req)
        File "/Users/imedan/test_kaiju/lib/python3.9/site-packages/setuptools/installer.py", line 84, in fetch_build_egg
          raise DistutilsError(str(e)) from e
      distutils.errors.DistutilsError: Command '['/Users/imedan/test_kaiju/bin/python3.9', '-m', 'pip', '--disable-pip-version-check', 'wheel', '--no-deps', '-w', '/var/folders/rd/fql1ldxn3cxdkqnfrzm9y34r0000gn/T/tmpm4mob429', '--quiet', 'sdss-coordio>=1.2.1']' returned non-zero exit status 1.
      found packages ['kaiju']
      [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.

What seems to fix this is installing coordio first and then trying to install kaiju again. I think the reason this occurs is in setup.py, coordio is in the setup_requires variable:

kaiju/setup.py

Lines 117 to 120 in 2bd0baa

setup_requires=[
"sdss-coordio>=1.2.1",
"pybind11>=2.2.4"
],

This above issue then also applies to installing mugatu from a clean install, as it depends on both kaiju and coordio, so coordio needs to be installed first before installing mugatu. This isn't a huge deal, the main headache it is causing me now is I can't build the documentation for mugatu as it crashes when the pip install of mugatu fails.

My main question is, is this setup requirement set correctly and/or necessary? For the former, I am wondering why is is failing at this setup requirements step and if there is a fix. If this isn't easily fixed or is necessary, I can also look around for some workarounds on my end.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions