ValueError:numpy.ufunc 大小已更改,可能表示二进制不兼容。预期来自 C 标头的 216,从 PyObject 获得 192

Posted

技术标签:

【中文标题】ValueError:numpy.ufunc 大小已更改,可能表示二进制不兼容。预期来自 C 标头的 216,从 PyObject 获得 192【英文标题】:ValueError: numpy.ufunc size changed, may indicate binary incompatibility. Expected 216 from C header, got 192 from PyObject 【发布时间】:2020-06-04 23:32:54 【问题描述】:

在 jupyter notebook 中,我遇到了这个错误。我正在使用 py 我刚刚安装了pytorch,以前它工作正常。

import pyodbc
import pandas as pd
import matplotlib.pyplot as plt

import warnings
warnings.filterwarnings('ignore')

当我运行上述单元格时,出现以下错误:

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-2-1051f624fd0e> in <module>()
      1 import pyodbc
----> 2 import pandas as pd
      3 import matplotlib.pyplot as plt
      4 
      5 import warnings

C:\Anaconda3\lib\site-packages\pandas\__init__.py in <module>()
     29 
     30 try:
---> 31     from pandas._libs import hashtable as _hashtable, lib as _lib, tslib as _tslib
     32 except ImportError as e:  # pragma: no cover
     33     # hack but overkill to use re

C:\Anaconda3\lib\site-packages\pandas\_libs\__init__.py in <module>()
      1 # flake8: noqa
      2 
----> 3 from .tslibs import (
      4     NaT,
      5     NaTType,

C:\Anaconda3\lib\site-packages\pandas\_libs\tslibs\__init__.py in <module>()
      1 # flake8: noqa
      2 
----> 3 from .conversion import localize_pydatetime, normalize_date
      4 from .nattype import NaT, NaTType, iNaT, is_null_datetimelike
      5 from .np_datetime import OutOfBoundsDatetime

__init__.pxd in init pandas._libs.tslibs.conversion()

ValueError: numpy.ufunc size changed, may indicate binary incompatibility. Expected 216 from C header, got 192 from PyObject

【问题讨论】:

【参考方案1】:

您安装了哪个版本的numpy?我在1.18.5 上遇到了同样的错误,降级到1.16.01.16.1 解决了issue。 还要检查pytorch 需要哪个numpy 版本,以及需要numpy 的任何其他库,我发现pipdeptree 对此非常有用。

【讨论】:

我在 Python3.6 中使用 numpy==1.19.5 和在 Python3.7 中使用 numpy==1.20.0,但在 Python3.8 中使用 numpy==1.20.0 时收到相同的警告而 Python3.9 的警告消失了。 @ÁlvaroMondéjar 这是一个“警告”吗??【参考方案2】:

我遇到了同样的错误,通过升级 Numpy 解决了

pip uninstall numpy ----> 运行 2-3 次,直到看到“numpy not found”

通过简单的 pip 安装最新的 Numpy

pip install numpy 

【讨论】:

您可能想要添加特定的新版本,因为在另一个答案中建议降级。我会用,pip install numpy==1.16.1【参考方案3】:

我得到了同样的错误,但我有 numpy 14.x。当我升级到 1.16.6 时,错误就消失了。 pip install numpy==1.16.6

【讨论】:

【参考方案4】:

想补充一点,我通过从 python 3.6 升级到 python3.8 并安装 numpy 1.20 为我的环境解决了这个问题

您可能需要使用 pip cache purge 从 pip 清除缓存的软件包版本。

【讨论】:

【参考方案5】:

更新 numpy 也可以解决其他答案中提到的这个问题。但是,从 quantipy3 (latest==0.2.4) 开始,要安装的 numpy 版本为 1.14.x。但我必须将它升级到 1.16.x 才能使 quantipy 工作。所以这就是我所做的。

pip show -v numpy

Name: numpy
Version: 1.14.5
Summary: NumPy: array processing for numbers, strings, records, and objects.
Home-page: http://www.numpy.org
Author: Travis E. Oliphant et al.
Author-email: None
License: BSD
Location: /home/kusal/.local/lib/python3.8/site-packages
Requires: 
Required-by: scipy, quantipy3, pyarrow, pandas, azureml-dataset-runtime
Metadata-Version: 2.1
Installer: pip
Classifiers:
  Development Status :: 5 - Production/Stable
  Intended Audience :: Science/Research
  Intended Audience :: Developers
  License :: OSI Approved
  Programming Language :: C
  Programming Language :: Python
  Programming Language :: Python :: 2
  Programming Language :: Python :: 2.7
  Programming Language :: Python :: 3
  Programming Language :: Python :: 3.4
  Programming Language :: Python :: 3.5
  Programming Language :: Python :: 3.6
  Programming Language :: Python :: Implementation :: CPython
  Topic :: Software Development
  Topic :: Scientific/Engineering
  Operating System :: Microsoft :: Windows
  Operating System :: POSIX
  Operating System :: Unix
  Operating System :: MacOS

那么,

pip uninstall numpy

最后,

pip install numpy==1.16.1

Quantipy 会按预期给出错误,说 numpy 版本不兼容。但是对于我的用例,结果还可以。 (我正在使用 RIM 和 Dataset 模块)

【讨论】:

【参考方案6】:

总是更好地创造一个新鲜的环境,尤其是当 theano 和 pymc3. 这是我的 Jupyter Notebook 的一部分,我尝试编写一个涉及贝叶斯推理上下文中的上述库/工具的示例。 Full Notebook 可能很快就会在 GitHub 上发布,但现在,我希望以下内容可能会有所帮助:

2。请务必遵循以下说明: 确保您遵循以下网址中的所有说明状态:

https://github.com/pymc-devs/pymc3/wiki/Installation-Guide-(Windows)

我浪费了几个小时试图修复已经存在的安装。这些练习值得自己拥有一个全新的虚拟环境。

简而言之:

    ⚠ 不要在没有先用 conda 安装依赖项的情况下进行 pip install。 ⚠

    一步创建一个全新的环境(在您的 Anaconda 提示中)。我用过:

"conda create -n pm3env -c conda-forge "python=3.8" libpython mkl-service m2w64-toolchain numba python-graphviz scipy"

    激活您的新环境:

“conda 激活 pm3env”

    之后,可以通过以下方式安装 PyMC3:

“pip install pymc3”(在这里您可以使用 pip - 这又在您的 Anaconda 提示中)

    最后一部分,卸载theano 从上面的消息中可以看出,我已经得到的它是不兼容的。 “康达删除 theano” 和 “conda install -c conda-forge theano-pymc”

你准备好了!

    请注意,我没有安装上述 url 中所述的附加依赖项。 如您所见,它没有完全没有错误地导入 theano 和 PyMC3。

【讨论】:

以上是关于ValueError:numpy.ufunc 大小已更改,可能表示二进制不兼容。预期来自 C 标头的 216,从 PyObject 获得 192的主要内容,如果未能解决你的问题,请参考以下文章

ValueError: numpy.ufunc has the wrong size, try recompiling. Expected 192, got 216

ValueError: numpy.ufunc has the wrong size, try recompiling. Expected 192, got 216

numpy ufunc/算术性能 - 整数不使用 SSE?

ValueError: x 和 y 的大小必须相同

ValueError:无法重塑大小为 0 的数组

ValueError: numpy.dtype 的大小错误,尝试重新编译