Python3.8环境导入TensorFlow报错numpy.ndarray size changed问题求助
问题说明
1个月前TensorFlow可以正常运行,现在无法导入。已经完全卸载Python、Anaconda以及对应基础环境文件,重新安装Anaconda后通过Anaconda Navigator安装了TensorFlow 2.3.0。在Anaconda Prompt中导入TensorFlow时报错如下:
(base) C:\Users\Prakhar Sharma>python Python 3.8.10 (default, May 19 2021, 13:12:57) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import tensorflow Traceback (most recent call last): File "<stdin>", line 1, in <module> File "D:\Anaconda\lib\site-packages\tensorflow\__init__.py", line 41, in <module> from tensorflow.python.tools import module_util as _module_util File "D:\Anaconda\lib\site-packages\tensorflow\python\__init__.py", line 47, in <module> from tensorflow.python import keras File "D:\Anaconda\lib\site-packages\tensorflow\python\keras\__init__.py", line 27, in <module> from tensorflow.python.keras import models File "D:\Anaconda\lib\site-packages\tensorflow\python\keras\models.py", line 26, in <module> from tensorflow.python.keras.engine import functional File "D:\Anaconda\lib\site-packages\tensorflow\python\keras\engine\functional.py", line 38, in <module> from tensorflow.python.keras.engine import training as training_lib File "D:\Anaconda\lib\site-packages\tensorflow\python\keras\engine\training.py", line 50, in <module> from tensorflow.python.keras.engine import data_adapter File "D:\Anaconda\lib\site-packages\tensorflow\python\keras\engine\data_adapter.py", line 60, in <module> import pandas as pd # pylint: disable=g-import-not-at-top File "D:\Anaconda\lib\site-packages\pandas\__init__.py", line 22, in <module> from pandas.compat import ( File "D:\Anaconda\lib\site-packages\pandas\compat\__init__.py", line 15, in <module> from pandas.compat.numpy import ( File "D:\Anaconda\lib\site-packages\pandas\compat\numpy\__init__.py", line 7, in <module> from pandas.util.version import Version File "D:\Anaconda\lib\site-packages\pandas\util\__init__.py", line 1, in <module> from pandas.util._decorators import ( # noqa File "D:\Anaconda\lib\site-packages\pandas\util\_decorators.py", line 14, in <module> from pandas._libs.properties import cache_readonly # noqa File "D:\Anaconda\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.ndarray size changed, may indicate binary incompatibility. Expected 88 from C header, got 80 from PyObject >>>
另外还有两个相关问题:
- 使用的是Intel i5处理器,不清楚为什么终端提示
MSC v.1916 64 bit (AMD64) - 已经执行过
conda update -all把所有包升级到最新版,还是无法解决问题
问题解答
疑问澄清
MSC v.1916 64 bit (AMD64)属于正常显示:AMD64是64位x86架构的通用命名,Intel的64位处理器也兼容该架构,和实际使用的处理器品牌无关,不需要做任何调整。- 执行
conda update --all反而会加剧冲突:TensorFlow 2.3.0对numpy版本有严格的上限要求,不能使用过高版本的numpy,全局升级所有包会导致numpy、pandas版本和TensorFlow版本不匹配。 - 核心报错的根因:当前环境的pandas版本是基于更高版本的numpy编译的,但环境中实际安装的numpy版本偏低,二者二进制接口不兼容,所以触发报错。
解决步骤
方案一:修复现有base环境
- 卸载现有冲突的numpy和pandas,在Anaconda Prompt中执行:
pip uninstall -y numpy pandas
- 安装适配TensorFlow 2.3.0的numpy版本:
pip install numpy==1.18.5
- 安装对应适配numpy 1.18.5的pandas版本:
pip install pandas==1.1.5
- 执行
python进入交互环境,输入import tensorflow验证是否正常。
方案二:创建独立conda环境(推荐,避免base环境包冲突)
- 创建名为tf23的专属环境,指定Python版本为3.8:
conda create -n tf23 python=3.8 -y
- 激活环境:
conda activate tf23
- 安装对应版本的依赖包:
pip install tensorflow==2.3.0 numpy==1.18.5 pandas==1.1.5
- 验证导入是否正常。
内容的提问来源于stack exchange,提问作者Prakhar Sharma
相关产品推荐
相关产品推荐

