Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Docker build issue related to hbdscan #76

Closed
dhoogest opened this issue Oct 18, 2023 · 2 comments · Fixed by #77
Closed

Docker build issue related to hbdscan #76

dhoogest opened this issue Oct 18, 2023 · 2 comments · Fixed by #77

Comments

@dhoogest
Copy link
Contributor

Looks like hdbscan (and possibly a related core dependency) is in need of upgrading. It appears 0.8.28 is no longer installable. See also scikit-learn-contrib/hdbscan#607

/cc @crosenth

  Building wheel for hdbscan (pyproject.toml): started
  Building wheel for hdbscan (pyproject.toml): finished with status 'error'
  error: subprocess-exited-with-error

  × Building wheel for hdbscan (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [168 lines of output]
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build/lib.linux-x86_64-cpython-39
      creating build/lib.linux-x86_64-cpython-39/hdbscan
      copying hdbscan/hdbscan_.py -> build/lib.linux-x86_64-cpython-39/hdbscan
      copying hdbscan/prediction.py -> build/lib.linux-x86_64-cpython-39/hdbscan
      copying hdbscan/__init__.py -> build/lib.linux-x86_64-cpython-39/hdbscan
      copying hdbscan/plots.py -> build/lib.linux-x86_64-cpython-39/hdbscan
      copying hdbscan/validity.py -> build/lib.linux-x86_64-cpython-39/hdbscan
      copying hdbscan/flat.py -> build/lib.linux-x86_64-cpython-39/hdbscan
      copying hdbscan/robust_single_linkage_.py -> build/lib.linux-x86_64-cpython-39/hdbscan
      creating build/lib.linux-x86_64-cpython-39/hdbscan/tests
      copying hdbscan/tests/test_prediction_utils.py -> build/lib.linux-x86_64-cpython-39/hdbscan/tests
      copying hdbscan/tests/__init__.py -> build/lib.linux-x86_64-cpython-39/hdbscan/tests
      copying hdbscan/tests/test_rsl.py -> build/lib.linux-x86_64-cpython-39/hdbscan/tests
      copying hdbscan/tests/test_flat.py -> build/lib.linux-x86_64-cpython-39/hdbscan/tests
      copying hdbscan/tests/test_hdbscan.py -> build/lib.linux-x86_64-cpython-39/hdbscan/tests
      running build_ext

Wcpp]
         17 | #warning "Using deprecated NumPy API, disable it with " \
            |  ^~~~~~~
      gcc -shared build/temp.linux-x86_64-cpython-39/hdbscan/_hdbscan_tree.o -L/usr/local/lib -o build/lib.linux-x86_64-cpython-39/hdbscan/_hdbscan_tree.cpython-39-x86_64-linux-gnu.so
      /tmp/pip-build-env-ovf1wt22/overlay/lib/python3.9/site-packages/Cython/Compiler/Main.py:381: FutureWarning: Cython directive 'language_level' not set, using '3str' for now (Py3). This has changed from earlier releases! File: /tmp/pip-install-enr2f3tg/hdbscan_a99876124ebb4a3ab09e2a271c6fe529/hdbscan/_hdbscan_linkage.pyx
        tree = Parsing.p_module(s, pxd, full_module_name)

      Error compiling Cython file:
      ------------------------------------------------------------
      ...
      import numpy as np
      cimport numpy as np

      from libc.float cimport DBL_MAX

      from dist_metrics cimport DistanceMetric
      ^
      ------------------------------------------------------------

      hdbscan/_hdbscan_linkage.pyx:12:0: 'dist_metrics.pxd' not found

      Error compiling Cython file:
      ------------------------------------------------------------
      ...
      import numpy as np
      cimport numpy as np

      from libc.float cimport DBL_MAX

      from dist_metrics cimport DistanceMetric
      ^
      ------------------------------------------------------------

      hdbscan/_hdbscan_linkage.pyx:12:0: 'dist_metrics/DistanceMetric.pxd' not found

      Error compiling Cython file:
      ------------------------------------------------------------
      ...


      cpdef np.ndarray[np.double_t, ndim=2] mst_linkage_core_vector(
              np.ndarray[np.double_t, ndim=2, mode='c'] raw_data,
              np.ndarray[np.double_t, ndim=1, mode='c'] core_distances,
              DistanceMetric dist_metric,
              ^
      ------------------------------------------------------------

      hdbscan/_hdbscan_linkage.pyx:58:8: 'DistanceMetric' is not a type identifier

      Error compiling Cython file:
      ------------------------------------------------------------
      ...
                      continue

                  right_value = current_distances[j]
                  right_source = current_sources[j]

                  left_value = dist_metric.dist(&raw_data_ptr[num_features *
                                                ^
      ------------------------------------------------------------

      hdbscan/_hdbscan_linkage.pyx:129:42: Cannot convert 'double_t *' to Python object

      Error compiling Cython file:
      ------------------------------------------------------------
      ...
                  right_value = current_distances[j]
                  right_source = current_sources[j]

                  left_value = dist_metric.dist(&raw_data_ptr[num_features *
                                                              current_node],
                                                &raw_data_ptr[num_features * j],
                                                ^
      ------------------------------------------------------------

      hdbscan/_hdbscan_linkage.pyx:131:42: Cannot convert 'double_t *' to Python object
      Compiling hdbscan/_hdbscan_linkage.pyx because it changed.
      [1/1] Cythonizing hdbscan/_hdbscan_linkage.pyx
      Traceback (most recent call last):
        File "/usr/local/lib/python3.9/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>
          main()
        File "/usr/local/lib/python3.9/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main
          json_out['return_val'] = hook(**hook_input['kwargs'])
        File "/usr/local/lib/python3.9/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 251, in build_wheel
          return _build_backend().build_wheel(wheel_directory, config_settings,
        File "/tmp/pip-build-env-ovf1wt22/overlay/lib/python3.9/site-packages/setuptools/build_meta.py", line 434, in build_wheel
          return self._build_with_temp_dir(
        File "/tmp/pip-build-env-ovf1wt22/overlay/lib/python3.9/site-packages/setuptools/build_meta.py", line 419, in _build_with_temp_dir
          self.run_setup()
        File "/tmp/pip-build-env-ovf1wt22/overlay/lib/python3.9/site-packages/setuptools/build_meta.py", line 507, in run_setup
          super(_BuildMetaLegacyBackend, self).run_setup(setup_script=setup_script)
        File "/tmp/pip-build-env-ovf1wt22/overlay/lib/python3.9/site-packages/setuptools/build_meta.py", line 341, in run_setup
          exec(code, locals())
        File "<string>", line 96, in <module>
        File "/tmp/pip-build-env-ovf1wt22/overlay/lib/python3.9/site-packages/setuptools/__init__.py", line 103, in setup
          return distutils.core.setup(**attrs)
        File "/tmp/pip-build-env-ovf1wt22/overlay/lib/python3.9/site-packages/setuptools/_distutils/core.py", line 185, in setup
          return run_commands(dist)
        File "/tmp/pip-build-env-ovf1wt22/overlay/lib/python3.9/site-packages/setuptools/_distutils/core.py", line 201, in run_commands
          dist.run_commands()
        File "/tmp/pip-build-env-ovf1wt22/overlay/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 969, in run_commands
          self.run_command(cmd)
        File "/tmp/pip-build-env-ovf1wt22/overlay/lib/python3.9/site-packages/setuptools/dist.py", line 989, in run_command
          super().run_command(command)
        File "/tmp/pip-build-env-ovf1wt22/overlay/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
          cmd_obj.run()
        File "/tmp/pip-build-env-ovf1wt22/overlay/lib/python3.9/site-packages/wheel/bdist_wheel.py", line 364, in run
          self.run_command("build")
        File "/tmp/pip-build-env-ovf1wt22/overlay/lib/python3.9/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command
          self.distribution.run_command(command)
        File "/tmp/pip-build-env-ovf1wt22/overlay/lib/python3.9/site-packages/setuptools/dist.py", line 989, in run_command
          super().run_command(command)
        File "/tmp/pip-build-env-ovf1wt22/overlay/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
          cmd_obj.run()
        File "/tmp/pip-build-env-ovf1wt22/overlay/lib/python3.9/site-packages/setuptools/_distutils/command/build.py", line 131, in run
          self.run_command(cmd_name)
        File "/tmp/pip-build-env-ovf1wt22/overlay/lib/python3.9/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command
          self.distribution.run_command(command)
        File "/tmp/pip-build-env-ovf1wt22/overlay/lib/python3.9/site-packages/setuptools/dist.py", line 989, in run_command
          super().run_command(command)
        File "/tmp/pip-build-env-ovf1wt22/overlay/lib/python3.9/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
          cmd_obj.run()
        File "<string>", line 26, in run
        File "/tmp/pip-build-env-ovf1wt22/overlay/lib/python3.9/site-packages/setuptools/_distutils/command/build_ext.py", line 345, in run
          self.build_extensions()
        File "/tmp/pip-build-env-ovf1wt22/overlay/lib/python3.9/site-packages/setuptools/_distutils/command/build_ext.py", line 467, in build_extensions
          self._build_extensions_serial()
        File "/tmp/pip-build-env-ovf1wt22/overlay/lib/python3.9/site-packages/setuptools/_distutils/command/build_ext.py", line 493, in _build_extensions_serial
          self.build_extension(ext)
        File "/tmp/pip-build-env-ovf1wt22/overlay/lib/python3.9/site-packages/Cython/Distutils/build_ext.py", line 130, in build_extension
          new_ext = cythonize(
        File "/tmp/pip-build-env-ovf1wt22/overlay/lib/python3.9/site-packages/Cython/Build/Dependencies.py", line 1154, in cythonize
          cythonize_one(*args)
        File "/tmp/pip-build-env-ovf1wt22/overlay/lib/python3.9/site-packages/Cython/Build/Dependencies.py", line 1321, in cythonize_one
          raise CompileError(None, pyx_file)
      Cython.Compiler.Errors.CompileError: hdbscan/_hdbscan_linkage.pyx
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for hdbscan
  Building wheel for pygtrie (setup.py): started
  Building wheel for pygtrie (setup.py): finished with status 'done'
  Created wheel for pygtrie: filename=pygtrie-2.4.2-py3-none-any.whl size=19062 sha256=5888f15ccf3da1ef7efc16017d2fbfc0023304f8d499356018df55544d3d8f63
  Stored in directory: /root/.cache/pip/wheels/2e/5d/81/d6e52fec193180ffffef19b185ecf1d0a85d418808c20c09c9
  Building wheel for seqmagick (setup.py): started
  Building wheel for seqmagick (setup.py): finished with status 'done'
  Created wheel for seqmagick: filename=seqmagick-0.8.4-py3-none-any.whl size=54813 sha256=a2b58cfd5bbefb534003facb4e79527e305ae56c990cba409adc9459706d6ba8
  Stored in directory: /root/.cache/pip/wheels/ce/c8/48/e042cac1778252d8a45da24ee09b17a463ba097cc21ba15fc0
  Building wheel for taxtastic (setup.py): started
  Building wheel for taxtastic (setup.py): finished with status 'done'
  Created wheel for taxtastic: filename=taxtastic-0.9.2-py3-none-any.whl size=90017 sha256=00f0a0370b4f6761022f2904fe08149fc44e7ad4d90adc28683a40e9bf1ebabb
  Stored in directory: /root/.cache/pip/wheels/98/cf/f0/7808e274808a0485f9e52a3e5a760b51dcb3256e26b2b2205f
Successfully built DendroPy fastalite pygtrie seqmagick taxtastic
Failed to build hdbscan
@crosenth
Copy link
Member

Is this from building a Docker image?

@dhoogest
Copy link
Contributor Author

Yeah or just install from requirements.txt

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants