异常提示
Numba needs NumPy 2.1 or less. Got NumPy 2.2.
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
Cell In[8], line 5
3 import pywt
4 import matplotlib.pyplot as plt
----> 5 from pyts.image import MarkovTransitionField, RecurrencePlot
6 from scipy.signal import hilbert
8 # 读取数据
File ~\anaconda3\envs\****\Lib\site-packages\pyts\image\__init__.py:6
1 """
2 The :mod:pyts.image module includes algorithms that transform times series
3 into images.
4 """
----> 6 from .gaf import GramianAngularField
7 from .mtf import MarkovTransitionField
8 from .recurrence import RecurrencePlot
File ~\anaconda3\envs\****\Lib\site-packages\pyts\image\gaf.py:8
6 import numpy as np
7 from math import ceil
----> 8 from numba import njit, prange
9 from sklearn.base import BaseEstimator
10 from sklearn.utils.validation import check_array
File ~\anaconda3\envs\****\Lib\site-packages\numba\__init__.py:59
54 msg = ("Numba requires SciPy version 1.0 or greater. Got SciPy "
55 f"{scipy.__version__}.")
56 raise ImportError(msg)
---> 59 _ensure_critical_deps()
60 # END DO NOT MOVE
61 # ---------------------- WARNING WARNING WARNING ----------------------------
64 from ._version import get_versions
File ~\anaconda3\envs\****\Lib\site-packages\numba\__init__.py:45, in _ensure_critical_deps()
42 if numpy_version > (2, 1):
43 msg = (f"Numba needs NumPy 2.1 or less. Got NumPy "
44 f"{numpy_version[0]}.{numpy_version[1]}.")
---> 45 raise ImportError(msg)
47 try:
48 import scipy
ImportError: Numba needs NumPy 2.1 or less. Got NumPy 2.2.
环境的包信息
numba 0.61.0
numexpr 2.10.1
numpy 2.1.3
ChatGPT 说:
ChatGPT
你现在的情况是:
NumPy 版本是 2.1.3 ✅(符合要求)
但 Numba 报错说你安装的是 NumPy 2.2 ❌,这可能是由于某些模块仍然读取到了旧的 NumPy 2.2 安装。
可能原因
你之前装过 NumPy 2.2,虽然现在降回了 2.1.3,但部分缓存或依赖路径未刷新。
pip 和 conda 环境混用,导致环境混乱。
Python 启动时使用的不是你想象的那个环境。
✅ 解决步骤建议
🔍 1. 检查 Python 正在使用哪个 NumPy
在 Jupyter 或 Python 里运行下面这段代码:
python
复制代码
import numpy
print(numpy.version)
print(numpy.file)
确认是否真的是在用 2.1.3,以及它是在哪个路径下加载的。
主要是这里,当我们在命令行pip安装需要的包之后,但是在Jupyter Lab里面的缓存路径仍是原来的包路径,这样就导致二者之间存在冲突。
需要做的是:关闭当前jupyter lab,然后重新打开,选择环境
🔧 2. 强制重装 NumPy 并清理缓存
bash
复制代码
pip uninstall numpy -y
pip cache purge
pip install numpy==2.1.3
之后再运行一次:
pip show numpy
确认安装无误。
🔧 3. 确保 numba 是最新版本(或兼容版本)
你的 Numba 是 0.61.0,这个版本较旧,不支持 NumPy 2.1+。你需要升级 Numba:
pip install --upgrade numba
目前(截至 2024 年底)Numba 0.59 之前不支持 NumPy 2.x,请使用 Numba 0.59.0 或更高版本(建议 0.59 ~ 0.60 区间)。