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

pmdarima is incompatible with numpy>=2.0.0 #577

Open
nashafa opened this issue Jun 18, 2024 · 9 comments · May be fixed by #578
Open

pmdarima is incompatible with numpy>=2.0.0 #577

nashafa opened this issue Jun 18, 2024 · 9 comments · May be fixed by #578

Comments

@nashafa
Copy link

nashafa commented Jun 18, 2024

Describe the bug

Changes to numpy in v2.0.0 break the current version of pmdarima. Numpy 2.0 has significant breaking changes to its internal API, some of which are documented in their release notes.

To Reproduce

Install pmdarima without pinning numpy (i.e. install pmdarima with numpy>=2.0.0). Import pmdarima.

Versions

System:
    python: 3.12.4 (main, Jun 18 2024, 10:50:53) [Clang 15.0.0 (clang-1500.3.9.4)]
executable: /.../.venv/bin/python
   machine: macOS-14.5-arm64-arm-64bit

Python dependencies:
 setuptools: 70.0.0
        pip: None
    sklearn: 1.5.0
statsmodels: 0.14.2
      numpy: 1.26.4 # actually 2.0.0, but pmdarima won't import to get this output unless numpy is downgraded
      scipy: 1.13.1 # actually 1.14.2, 1.13 doesn't support numpy 2.0
     Cython: 3.0.10
     pandas: 2.2.2
     joblib: 1.4.2
   pmdarima: 2.0.4

Expected Behavior

Pmdarima should import and run as normal.

Actual Behavior

Pmdarima does not import.

Python 3.12.4 (main, Jun 18 2024, 10:50:53) [Clang 15.0.0 (clang-1500.3.9.4)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import pmdarima
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/.../.venv/lib/python3.12/site-packages/pmdarima/__init__.py", line 52, in <module>
    from .arima import auto_arima, ARIMA, AutoARIMA, StepwiseContext, decompose
  File "/.../.venv/lib/python3.12/site-packages/pmdarima/arima/__init__.py", line 5, in <module>
    from .approx import *
  File "/.../.venv/lib/python3.12/site-packages/pmdarima/arima/approx.py", line 9, in <module>
    from ..utils.array import c, check_endog
  File "/.../.venv/lib/python3.12/site-packages/pmdarima/utils/__init__.py", line 5, in <module>
    from .array import *
  File "/.../.venv/lib/python3.12/site-packages/pmdarima/utils/array.py", line 13, in <module>
    from ._array import C_intgrt_vec
  File "pmdarima/utils/_array.pyx", line 1, in init pmdarima.utils._array
ValueError: numpy.dtype size changed, may indicate binary incompatibility. Expected 96 from C header, got 88 from PyObject

Additional Context

I'm not too familiar with the inner workings or development of pmdarima or numpy. Please let me know if there's any further information I can provide or if there's something specific I can look into to fix any potential issues.

@geee28
Copy link

geee28 commented Jun 27, 2024

Hi,

This issue may take a while to solve. The workaround is by downgrading the numpy version to 1.26.4 (and I have pandas 2.2.2, seems to work for me).

@aaronreidsmith
Copy link
Member

I appreciate the bug report and workaround! Looks like we need to be building against numpy 2.0. We'll work on this as time allows with day jobs. As always we are open to PRs!

@bbalouki
Copy link

Hi,

This issue may take a while to solve. The workaround is by downgrading the numpy version to 1.26.4 (and I have pandas 2.2.2, seems to work for me).

Yeah, I have done the same thing and it seems to work. but I find it useful to delete pip caches pip cache purge before installing the new version of numpy

@AbdullahTheScientist
Copy link

thanks

@skyth540
Copy link

I uninstalled numpy, purged the cache, and pip install numpy==1.26.4

I'm still getting ValueError: numpy.dtype size changed, may indicate binary incompatibility. Expected 96 from C header, got 88 from PyObject from import pmdarima as pm

@ic
Copy link

ic commented Oct 9, 2024

Downgrading Numpy to numpy<2 on Python 3.12 worked here.

@nashafa
Copy link
Author

nashafa commented Oct 17, 2024

I just want to add that this is blocking support for Python 3.13. NumPy 1.26.4 limits support to Python<3.13. Support for Python 3.13 is added in NumPy 2.1.0.

@dennisbader
Copy link

Hi all, we at Darts are also looking now into adding support for numpy>=2.0.0. Since pmdarima is one of our dependencies, I wanted to ask whether you plan to add support in the near future?

@tgsmith61591
Copy link
Member

Hey everyone, thanks for using pmdarima. I realize this has been open for some time, and has been a bit of a thorn in the side for everyone.

It's not a good excuse, but I have been very busy with my day job and (young) family lately. I'm going to commit to carve out some time for this as soon as possible. Hope to get this out for everyone soon. Thanks for your patience to date.

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

Successfully merging a pull request may close this issue.

9 participants