使用numpy时警告:RuntimeWarning: numpy.dtype size changed, may indicate binary incompatibility

在新安装numpy之后运行python程序时可能会遇到以下警告:

/usr/local/lib/python2.7/dist-packages/scipy/linalg/basic.py:17: RuntimeWarning: numpy.dtype size changed, may indicate binary incompatibility. Expected 96, got 88
  from ._solve_toeplitz import levinson
/usr/local/lib/python2.7/dist-packages/scipy/linalg/__init__.py:207: RuntimeWarning: numpy.dtype size changed, may indicate binary incompatibility. Expected 96, got 88
  from ._decomp_update import *
/usr/local/lib/python2.7/dist-packages/scipy/special/__init__.py:640: RuntimeWarning: numpy.dtype size changed, may indicate binary incompatibility. Expected 96, got 88
  from ._ufuncs import *
/usr/local/lib/python2.7/dist-packages/scipy/special/_ellip_harm.py:7: RuntimeWarning: numpy.dtype size changed, may indicate binary incompatibility. Expected 96, got 88
  from ._ellip_harm_2 import _ellipsoid, _ellipsoid_norm
/usr/local/lib/python2.7/dist-packages/scipy/interpolate/_bsplines.py:10: RuntimeWarning: numpy.dtype size changed, may indicate binary incompatibility. Expected 96, got 88
  from . import _bspl
/usr/local/lib/python2.7/dist-packages/scipy/sparse/lil.py:19: RuntimeWarning: numpy.dtype size changed, may indicate binary incompatibility. Expected 96, got 88
  from . import _csparsetools
/usr/local/lib/python2.7/dist-packages/scipy/sparse/csgraph/__init__.py:165: RuntimeWarning: numpy.dtype size changed, may indicate binary incompatibility. Expected 96, got 88
  from ._shortest_path import shortest_path, floyd_warshall, dijkstra,\
/usr/local/lib/python2.7/dist-packages/scipy/sparse/csgraph/_validation.py:5: RuntimeWarning: numpy.dtype size changed, may indicate binary incompatibility. Expected 96, got 88
  from ._tools import csgraph_to_dense, csgraph_from_dense,\
/usr/local/lib/python2.7/dist-packages/scipy/sparse/csgraph/__init__.py:167: RuntimeWarning: numpy.dtype size changed, may indicate binary incompatibility. Expected 96, got 88
  from ._traversal import breadth_first_order, depth_first_order, \
/usr/local/lib/python2.7/dist-packages/scipy/sparse/csgraph/__init__.py:169: RuntimeWarning: numpy.dtype size changed, may indicate binary incompatibility. Expected 96, got 88
  from ._min_spanning_tree import minimum_spanning_tree
/usr/local/lib/python2.7/dist-packages/scipy/sparse/csgraph/__init__.py:170: RuntimeWarning: numpy.dtype size changed, may indicate binary incompatibility. Expected 96, got 88
  from ._reordering import reverse_cuthill_mckee, maximum_bipartite_matching, \
/usr/local/lib/python2.7/dist-packages/scipy/spatial/__init__.py:95: RuntimeWarning: numpy.dtype size changed, may indicate binary incompatibility. Expected 96, got 88
  from .ckdtree import *
/usr/local/lib/python2.7/dist-packages/scipy/spatial/__init__.py:96: RuntimeWarning: numpy.dtype size changed, may indicate binary incompatibility. Expected 96, got 88
  from .qhull import *
/usr/local/lib/python2.7/dist-packages/scipy/spatial/_spherical_voronoi.py:18: RuntimeWarning: numpy.dtype size changed, may indicate binary incompatibility. Expected 96, got 88
  from . import _voronoi
/usr/local/lib/python2.7/dist-packages/scipy/spatial/distance.py:122: RuntimeWarning: numpy.dtype size changed, may indicate binary incompatibility. Expected 96, got 88
  from . import _hausdorff

此时可以检查以下numpy的版本

python
>>> import numpy
>>> numpy.__version__

若显示1.15.0及以上版本,则该警告是numpy版本过高所带来的。降级numpy版本即可,如1.14.5等:

sudo pip uninstall numpy
sudo pip install numpy==1.14.5
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 这个错误通常是由于你安装的 Numpy 库版本与你的代码不兼容导致的。可能是你安装了不同版本的 Numpy 库,或者是你的代码中使用了旧版本的某些函数或参数。 为了解决这个问题,你可以尝试以下几个步骤: 1. 确认你的 Numpy 库已经更新到最新版本。你可以通过运行以下命令来升级 Numpy 库: `pip install --upgrade numpy` 2. 如果你使用的是 Anaconda 等 Python 发行版,可以尝试更新整个发行版,以确保所有库都是最新版本。 3. 确认你的代码中没有使用的函数或参数。你可以查看 Numpy 的文档来查找最新的函数和参数。 如果以上步骤都无法解决问题,可能需要重新安装 Python 和相关库。建议在重新安装之前备份你的代码和数据,以防止数据丢失。 ### 回答2: 首先,让我们分解这个错误消息以更好地理解它: - ValueError(数值错误):指明发生了值方面的问题 - numpy.ndarray size changed(numpy数组大小改变):numpy数组的大小发生了改变 - may indicate binary incompatibility(可能表明二进制不兼容性):这可能表明一些二进制文件之间不兼容,因此出现了错误 - expected 96 from c header, got 88 from pyobject(期望来自c头文件的96,从py对象中获得了88):意思是Python expects a certain value (96) based on a C header file while the actual value it gets from the Python object is different (88). 当你使用Pythonnumpy,该错误通常是由numpy版本与其他库(如Python自身或其他第三方库)之间的二进制不兼容性所引起的。这个错误可能意味着你的numpy版本过旧或过新,并且在加载过程中与其他部件不兼容。 为解决这个问题,你可以尝试以下几个步骤: 1. 检查numpy的版本是否最新。 你可以通过运行以下命令检查numpy的版本: `pip show numpy` 如果你的numpy版本过旧,使用以下命令升级: `pip install --upgrade numpy` 2. 更新其他的软件。 如果你的numpy已经是最新版本,那么你需要确保其他软件(如Python本身或其他第三方库)也更新到了最新版本。你可以通过运行以下命令检查软件版本: `pip freeze` 3. 使用conda安装numpy。 如果你使用conda管理你的Python环境,那么你可以通过以下命令运用conda安装numpy: `conda install numpy` 总的来说,这个错误多与组件版本之间的不兼容性有关,因此最好的解决方案是确保组件的版本全部更新到了最新版本。 ### 回答3: 这个错误是由于 numpy 库在引入发生了二进制不兼容的问题。当 numpy 库被编译,它使用一些 C 代码文件生成预编译头文件。然后,这些头文件可以被其他 Python 脚本使用,以便在 Python 中导入 numpy 库。当我们在使用多个 Python 脚本,可能会出现 numpy 库版本的不兼容问题。这个错误信息的意思是,预期的头文件大小是 96,但是从 PyObject 对象中找到的大小为 88。 解决此问题的方法是重新安装或更新 numpy 库,以确保使用相同的 numpy 库版本。您可以使用以下步骤升级 numpy 库: 1. 在命令提示符中,输入 "pip list" 命令,以查看当前安装的 numpy 库的版本。 2. 如果旧的 numpy 库版本已安装,请卸载它。在命令提示符中,输入 "pip uninstall numpy" 命令。 3. 现在,您可以安装最新的 numpy 库版本。在命令提示符中,输入 "pip install numpy" 命令。这将安装最新的 numpy 库版本。 如果您仍然遇到相同的错误,您可以尝试将您使用的所有 Python 脚本都转换为使用最新版本的 numpy 库。如果还是无法解决问题,则需要进一步检查代码和环境配置以查找其他原因。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值