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

[BUG] installation of recommenders[gpu] 1.2.0 failed in compiling statsmodel #2195

Closed
3 tasks
lezhangamd opened this issue Dec 12, 2024 · 4 comments
Closed
3 tasks
Labels
bug Something isn't working

Comments

@lezhangamd
Copy link

Description

Installing recommenders[gpu]==1.2.0, the latest version, failed in compiling statsmodel.

INFO: pip is looking at multiple versions of statsmodels to determine which version is compatible with other requirements. This could take a while.
  Downloading statsmodels-0.13.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (10.0 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.0/10.0 MB 1.7 MB/s eta 0:00:00
  Downloading statsmodels-0.13.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (9.9 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 9.9/9.9 MB 1.3 MB/s eta 0:00:00
  Downloading statsmodels-0.13.0.tar.gz (17.8 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 17.8/17.8 MB 2.0 MB/s eta 0:00:00
  Installing build dependencies ... done
  Getting requirements to build wheel ... error
  error: subprocess-exited-with-error
  
  × Getting requirements to build wheel did not run successfully.
  │ exit code: 1
  ╰─> [67 lines of output]
      <string>:19: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
      <string>:53: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
      <string>:56: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
      <string>:53: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
      
      Error compiling Cython file:
      ------------------------------------------------------------
      ...
      cimport cython
      cimport numpy as np
      import numpy as np
      
      ctypedef np.float64_t DOUBLE
      ctypedef np.int_t INT
               ^
      ------------------------------------------------------------
      
      statsmodels/nonparametric/linbin.pyx:13:9: 'int_t' is not a type identifier
      Compiling statsmodels/tsa/_stl.pyx because it changed.
      Compiling statsmodels/tsa/holtwinters/_exponential_smoothers.pyx because it changed.
      Compiling statsmodels/tsa/exponential_smoothing/_ets_smooth.pyx because it changed.
      Compiling statsmodels/tsa/_innovations.pyx because it changed.
      Compiling statsmodels/tsa/regime_switching/_hamilton_filter.pyx because it changed.
      Compiling statsmodels/tsa/regime_switching/_kim_smoother.pyx because it changed.
      Compiling statsmodels/tsa/innovations/_arma_innovations.pyx because it changed.
      Compiling statsmodels/nonparametric/linbin.pyx because it changed.
      Compiling statsmodels/robust/_qn.pyx because it changed.
      Compiling statsmodels/nonparametric/_smoothers_lowess.pyx because it changed.
      Compiling statsmodels/tsa/statespace/_initialization.pyx because it changed.
      Compiling statsmodels/tsa/statespace/_representation.pyx because it changed.
      Compiling statsmodels/tsa/statespace/_kalman_filter.pyx because it changed.
      Compiling statsmodels/tsa/statespace/_filters/_conventional.pyx because it changed.
      Compiling statsmodels/tsa/statespace/_filters/_inversions.pyx because it changed.
      Compiling statsmodels/tsa/statespace/_filters/_univariate.pyx because it changed.
      Compiling statsmodels/tsa/statespace/_filters/_univariate_diffuse.pyx because it changed.
      Compiling statsmodels/tsa/statespace/_kalman_smoother.pyx because it changed.
      Compiling statsmodels/tsa/statespace/_smoothers/_alternative.pyx because it changed.
      Compiling statsmodels/tsa/statespace/_smoothers/_classical.pyx because it changed.
      Compiling statsmodels/tsa/statespace/_smoothers/_conventional.pyx because it changed.
      Compiling statsmodels/tsa/statespace/_smoothers/_univariate.pyx because it changed.
      Compiling statsmodels/tsa/statespace/_smoothers/_univariate_diffuse.pyx because it changed.
      Compiling statsmodels/tsa/statespace/_simulation_smoother.pyx because it changed.
      Compiling statsmodels/tsa/statespace/_cfa_simulation_smoother.pyx because it changed.
      Compiling statsmodels/tsa/statespace/_tools.pyx because it changed.
      [ 1/26] Cythonizing statsmodels/nonparametric/_smoothers_lowess.pyx
      [ 2/26] Cythonizing statsmodels/nonparametric/linbin.pyx
      Traceback (most recent call last):
        File "/home/lezhang/environment/reco/lib/python3.10/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 363, in <module>
          main()
        File "/home/lezhang/environment/reco/lib/python3.10/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 345, in main
          json_out['return_val'] = hook(**hook_input['kwargs'])
        File "/home/lezhang/environment/reco/lib/python3.10/site-packages/pip/_vendor/pep517/in_process/_in_process.py", line 130, in get_requires_for_build_wheel
          return hook(config_settings)
        File "/tmp/pip-build-env-bi0vrxzo/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 334, in get_requires_for_build_wheel
          return self._get_build_requires(config_settings, requirements=[])
        File "/tmp/pip-build-env-bi0vrxzo/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 304, in _get_build_requires
          self.run_setup()
        File "/tmp/pip-build-env-bi0vrxzo/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 522, in run_setup
          super().run_setup(setup_script=setup_script)
        File "/tmp/pip-build-env-bi0vrxzo/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 320, in run_setup
          exec(code, locals())
        File "<string>", line 304, in <module>
        File "/tmp/pip-build-env-bi0vrxzo/overlay/lib/python3.10/site-packages/Cython/Build/Dependencies.py", line 1154, in cythonize
          cythonize_one(*args)
        File "/tmp/pip-build-env-bi0vrxzo/overlay/lib/python3.10/site-packages/Cython/Build/Dependencies.py", line 1321, in cythonize_one
          raise CompileError(None, pyx_file)
      Cython.Compiler.Errors.CompileError: statsmodels/nonparametric/linbin.pyx
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error

× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> See above for output.

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

It looks like the fix has been merged into main branch but it is not yet released. #2182

In which platform does it happen?

Linux WSL Ubuntu 22.04

How do we replicate the issue?

pip install recommenders[gpu]==1.2.0

Expected behavior (i.e. solution)

Installation should be successful.

Willingness to contribute

  • Yes, I can contribute for this issue independently.
  • Yes, I can contribute for this issue with guidance from Recommenders community.
  • No, I cannot contribute at this time.

Other Comments

@lezhangamd lezhangamd added the bug Something isn't working label Dec 12, 2024
@miguelgfierro
Copy link
Collaborator

This is related to #2185

This might be fixed with Cython<3. Can you try?

@yueguoguo
Copy link
Collaborator

This is related to #2185

This might be fixed with Cython<3. Can you try?

Correct. It's been fixed in the main branch already. I guess what is needed is to publish that fix in main into PYPI such that it won't break installation with pip.

@miguelgfierro
Copy link
Collaborator

We can create a new release. This was an issue because of a breaking change by Cython. When we released, everything worked perfectly. We can discuss what to do next on Monday in the Reco meeting.

@miguelgfierro
Copy link
Collaborator

Fixed with the new release

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants