brendan-w / python-OBD

OBD-II serial module for reading engine data
GNU General Public License v2.0
1.08k stars 371 forks source link

Import problem with Numpy2.0.1 #281

Open Qooniee opened 3 months ago

Qooniee commented 3 months ago

Version Information

Problem Details

An error occurs when importing the obd module: AttributeError: module 'numpy' has no attribute 'cumproduct'

Expected Behavior

The obd module should import without errors.

Actual Behavior

An AttributeError occurs, indicating that the cumproduct function does not exist in the current version of numpy.

When I use numpy==1.26.4, I can import obd because numpy has np.cumproduct. You can replace np.cumproduct with np.cumprod.

Lauwy222 commented 3 months ago

got the same issue

theaircrasher commented 2 months ago

Same problem here with:

Python 3.10.12 numpy 2.1.0 obd 0.7.2

Derek-Shannon commented 2 months ago

Fixed the Problem!

Python 3.11.9 obd 0.7.2 numpy 2.0.1

Go to C:\Users{YOUR-USER}\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\site-packages\pint\facets\numpy\numpy_func.py

Replace line 884 with: for func_str in ["cumprod", "nancumprod"]:

davrandom commented 1 week ago

It is fixed in more recent versions of pint [1]. We just need to bump the requirements in python_OBD. If you change setup.py and require pint>=0.24.4, build and install, it works fine (uninstall old pint first).

[1] https://pypi.org/project/Pint/