报错
Traceback (most recent call last):
File "E:\DeepIPShock\deepipshock_data\deepipshock_params_window_cupy.py", line 4, in <module>
import pandas as pd
File "C:\Users\zhaod\.conda\envs\torch2\lib\site-packages\pandas\__init__.py", line 22, in <module>
from pandas.compat import is_numpy_dev as _is_numpy_dev # pyright: ignore # noqa:F401
File "C:\Users\zhaod\.conda\envs\torch2\lib\site-packages\pandas\compat\__init__.py", line 25, in <module>
from pandas.compat.numpy import (
File "C:\Users\zhaod\.conda\envs\torch2\lib\site-packages\pandas\compat\numpy\__init__.py", line 4, in <module>
from pandas.util.version import Version
File "C:\Users\zhaod\.conda\envs\torch2\lib\site-packages\pandas\util\__init__.py", line 2, in <module>
from pandas.util._decorators import ( # noqa:F401
File "C:\Users\zhaod\.conda\envs\torch2\lib\site-packages\pandas\util\_decorators.py", line 14, in <module>
from pandas._libs.properties import cache_readonly
File "C:\Users\zhaod\.conda\envs\torch2\lib\site-packages\pandas\_libs\__init__.py", line 13, in <module>
from pandas._libs.interval import Interval
File "pandas\_libs\interval.pyx", line 1, in init pandas._libs.interval
ValueError: numpy.dtype size changed, may indicate binary incompatibility. Expected 96 from C header, got 88 from PyObject
原因
-
根本原因
Pandas 内部依赖特定版本的 Numpy,当 Numpy 版本更新后,其二进制接口(如数据类型大小)发生变化,导致已编译的 Pandas 组件无法兼容新版 Numpy。 -
触发场景
- Conda 环境中混合使用
conda install
和pip install
安装包 - 手动升级/降级了 Numpy 但未同步更新 Pandas
- 不同 Python 环境(如虚拟环境)间库版本冲突
- Conda 环境中混合使用
解决
卸载并重装。
pip uninstall numpy scipy pandas
pip install numpy scipy pandas