python导入pandas时报错:ValueError: numpy.ndarray size changed, may indicate binary incompatibility.
python 导入 pandas时报错:ValueError: numpy.ndarray size changed, may indicate binary incompatibility. Expected 88 from C header, got 80 from PyObject
报的错误如下:
Traceback (most recent call last):
File “c:/Users/GZY/Documents/WeChat Files/wxid_1g0sosb01ifq22/FileStorage/File/2022-08/CSVV/extract.py”, line 1, in
import pandas as pd
File “D:\Anaconda\envs\pytorch_exercise\lib\site-packages\pandas_init_.py”, line 22, in
from pandaspat import (
File “D:\Anaconda\envs\pytorch_exercise\lib\site-packages\pandas\compat_init_.py”, line 15, in
from pandaspat.numpy import (
File “D:\Anaconda\envs\pytorch_exercise\lib\site-packages\pandas\compat\ numpy _init_.py”, line 7, in
File “D:\Anaconda\envs\pytorch_exercise\lib\site-packages\pandas\util_init_.py”, line 1, in
from pandas.util._decorators import ( # noqa
File “D:\Anaconda\envs\pytorch_exercise\lib\site-packages\pandas\util_decorators.py”, line 14, in
from pandas.libs.properties import cache_readonly # noqa
File "D:\Anaconda\envs\pytorch_exercise\lib\site-packages\pandas_libs_init.py", line 13, in
from pandas._libs.interval import Interval
File “pandas_libs\interval.pyx”, line 1, in init pandas._libs.interval
ValueError: numpy.ndarray size changed, may indicate binary incompatibility. Expected 88 from C header, got 80 from PyObject
根据ValueError和报错内容中加粗的部分,原因是pandas包中有部分文件依赖numpy,但numpy版本不对,猜测numpy版本过低引起的。尝试升级numpy版本:pip install --upgrade numpy
,如果是使用的anaconda中创建的虚拟环境,需要先进入所创建的虚拟环境:conda activate 虚拟环境名
,然后执行上述命令。升级完成后,再次执行python文件,发现问题得到了解决。
总结
很多库在使用pip安装后,会与numpy的版本产生冲突,一般都是numpy的版本低导致的,使用pip install --upgrade numpy
命令进行更新即可。此命令默认更新成的都是符合本机要求的numpy最新版本。如果在线安装或升级过慢,可以先将whl文件下载下来进行本地安装。
pip安装whl文件
先将whl文件复制到命令行的当前路径,比如我的是:(pytorch_exercise) C:\Users\GZY>
(其中"pytorch_exercise"是我的python虚拟环境名,''C:\Users\GZY"是我的当前命令行的路径),我们需要先把whl文件复制到"C:\Users\GZY"路径下,然后在命令行中执行pip install 文件名.whl
,即可实现快速安装。
python导入pandas时报错:ValueError: numpy.ndarray size changed, may indicate binary incompatibility.
python 导入 pandas时报错:ValueError: numpy.ndarray size changed, may indicate binary incompatibility. Expected 88 from C header, got 80 from PyObject
报的错误如下:
Traceback (most recent call last):
File “c:/Users/GZY/Documents/WeChat Files/wxid_1g0sosb01ifq22/FileStorage/File/2022-08/CSVV/extract.py”, line 1, in
import pandas as pd
File “D:\Anaconda\envs\pytorch_exercise\lib\site-packages\pandas_init_.py”, line 22, in
from pandaspat import (
File “D:\Anaconda\envs\pytorch_exercise\lib\site-packages\pandas\compat_init_.py”, line 15, in
from pandaspat.numpy import (
File “D:\Anaconda\envs\pytorch_exercise\lib\site-packages\pandas\compat\ numpy _init_.py”, line 7, in
File “D:\Anaconda\envs\pytorch_exercise\lib\site-packages\pandas\util_init_.py”, line 1, in
from pandas.util._decorators import ( # noqa
File “D:\Anaconda\envs\pytorch_exercise\lib\site-packages\pandas\util_decorators.py”, line 14, in
from pandas.libs.properties import cache_readonly # noqa
File "D:\Anaconda\envs\pytorch_exercise\lib\site-packages\pandas_libs_init.py", line 13, in
from pandas._libs.interval import Interval
File “pandas_libs\interval.pyx”, line 1, in init pandas._libs.interval
ValueError: numpy.ndarray size changed, may indicate binary incompatibility. Expected 88 from C header, got 80 from PyObject
根据ValueError和报错内容中加粗的部分,原因是pandas包中有部分文件依赖numpy,但numpy版本不对,猜测numpy版本过低引起的。尝试升级numpy版本:pip install --upgrade numpy
,如果是使用的anaconda中创建的虚拟环境,需要先进入所创建的虚拟环境:conda activate 虚拟环境名
,然后执行上述命令。升级完成后,再次执行python文件,发现问题得到了解决。
总结
很多库在使用pip安装后,会与numpy的版本产生冲突,一般都是numpy的版本低导致的,使用pip install --upgrade numpy
命令进行更新即可。此命令默认更新成的都是符合本机要求的numpy最新版本。如果在线安装或升级过慢,可以先将whl文件下载下来进行本地安装。
pip安装whl文件
先将whl文件复制到命令行的当前路径,比如我的是:(pytorch_exercise) C:\Users\GZY>
(其中"pytorch_exercise"是我的python虚拟环境名,''C:\Users\GZY"是我的当前命令行的路径),我们需要先把whl文件复制到"C:\Users\GZY"路径下,然后在命令行中执行pip install 文件名.whl
,即可实现快速安装。