你如何修复 numpy 和 pandas 的“runtimeError: package failed to pass a sanity check”?

Posted

技术标签:

【中文标题】你如何修复 numpy 和 pandas 的“runtimeError: package failed to pass a sanity check”?【英文标题】:How do you fix "runtimeError: package fails to pass a sanity check" for numpy and pandas? 【发布时间】:2021-02-15 15:45:13 【问题描述】:

这是我遇到的错误,据我所知,错误链接上没有任何有用的东西可以解决这个问题。

RuntimeError: 当前的 Numpy 安装 ('...\\venv\\lib\\site-packages\\numpy\\__init__.py') 未能通过 由于 Windows 运行时中的错误导致的健全性检查。

有关更多信息,请参阅此问题:https://developercommunity.visualstudio.com/content/problem/1207405/fmod-after-an-update-to-windows-2004-is-causing-a.html

我尝试了多个版本的 Python(3.8.6 和 3.9.0)以及 numpy 和 pandas。我目前正在使用 PyCharm 来完成这一切。

【问题讨论】:

【参考方案1】:

使用python3.9和numpy1.19.4时出现此错误 所以卸载 numpy1.19.4 并安装 1.19.3 就可以了。


编辑

截至 2021 年 1 月 5 日,numpy 版本 1.19.5 已发布,似乎可以解决问题。

【讨论】:

如何使用 pip 降级? @ShaidaMuhammad pip install numpy==1.19.3 该死的numpy,请在发布前进行测试。这不是测试版 我使用的是 Python 3.7.5,也遇到了这个错误(numpy 1.19.4)。将 numpy 降级到 1.19.3 确实可以防止错误发生。 @NoName:我们做了测试,bug 就在 windows 本身。 1.19.3 尝试通过使用解决此问题的不同版本的 OpenBLAS 来解决此问题,但该版本在 linux 上无法正常工作。【参考方案2】:

我使用的是 Python 3.7,无论如何这里建议的相同解决方案对我有帮助。

pip install numpy==1.19.3

实际上通知https://developercommunity.visualstudio.com/content/problem/1207405/fmod-after-an-update-to-windows-2004-is-causing-a.html 的链接显示了给定的解决方案。这似乎是 Visual Studio 中的一个错误,至今仍未解决。

【讨论】:

从技术上讲,这是 UCRT(通用可再发行 C/C++ 运行时)中的错误,而不是 Visual Studio 本身。【参考方案3】:

只需安装numpy==1.19.3 我正在使用 python 3.9

【讨论】:

【参考方案4】:

根据您提供的链接上的讨论,numpy 开发人员回答:

NumPy 已发布错误修复 1.19.3 以解决此问题。这 错误修复在 Linux 上破坏了其他东西,所以我们不得不恢复修复 发布 1.19.4,但您仍然可以通过 pip install 安装 1.19.3 numpy==1.19.3.

因此,如果您需要适用于 Linux 和 Windows 的要求,则需要使用 PEP508:

numpy==1.19.3; platform_system == "Windows"
numpy>=1.19.4; platform_system == "linux"

【讨论】:

在 linux 上大概可以做numpy>=1.19.4 你应该使用大写的“Linux”来代替:numpy>=1.19.4; platform_system == "Linux" 您可以通过以下代码检查platform_system:import platform;platform.system()参见:python.org/dev/peps/pep-0508/#environment-markers【参考方案5】:

这是numpy 1.19.4 的一个错误,所有 python 版本都失败了。使用以前的版本解决问题,所以通过终端:

pip install numpy==1.19.3

【讨论】:

1.9.3 无法在我的 Windows 上安装 @JariTurkia 现在是 1.19.3。【参考方案6】:

回滚到 numpy 1.19.3 在 python 3.8.6 上为我工作

【讨论】:

【参考方案7】:

相关链接中提供了解决方法。

开发者mattip 在他建议的解决方法中提到了以下内容:

    卸载 numpy。(很可能是 1.19.4) pip install numpy==1.19.3

这对我有用。

我的配置:OS-Win10,Anaconda Distribution,python=3.7

【讨论】:

【参考方案8】:

为什么没有人发布 1.19.3 和 1.19.4 之间的区别。

有问题的numpy初始化代码是:

def _win_os_check():
    """
    Quick Sanity check for Windows OS: look for fmod bug issue 16744.
    """
    try:
        a = arange(13 * 13, dtype= float64).reshape(13, 13)
        a = a % 17  # calls fmod
        linalg.eig(a)
    except Exception:
        msg = ("The current Numpy installation (!r) fails to "
                "pass a sanity check due to a bug in the windows runtime. "
                "See this issue for more information: "
                "https://developercommunity.visualstudio.com/content/problem/1207405/fmod-after-an-update-to-windows-2004-is-causing-a.html")
        raise RuntimeError(msg.format(__file__)) from None

if sys.platform == "win32" and sys.maxsize > 2**32:
    _win_os_check()

del _win_os_check

此代码段在 1.19.3 中不存在;这是唯一的区别。

【讨论】:

pip 安装的 1.19.3 和 1.19.4 ***之间还有另一个更重要的区别 - 它们构建时使用的 OpenBLAS 版本。如果您从 numpy 1.19.4 中删除该代码,那么您将得到一个 numpy,它会产生不正确的结果和/或随机崩溃,而不是 numpy 不导入。正确的解决方法是切换到 1.19.3,其中包含 OpenBLAS 的“安全”版本。【参考方案9】:

按照上面其他人的建议,我必须按照以下步骤修复此错误。

我的环境详细信息:Windows 10 64 位,安装了 Python 3.9.0。我已经安装了 pip 20.3.1

pip uninstall numpy
pip install numpy==1.19.3

我正在发布我的 powershell 命令行输出供您参考(可能对某人有用)。

PS C:\Users\XXXX> pip 卸载 numpy

找到现有安装:numpy 1.19.4

卸载 numpy-1.19.4:

将删除:

c:\python39\lib\site-packages\numpy-1.19.4.dist-info\*

c:\python39\lib\site-packages\numpy\*

c:\python39\scripts\f2py.exe

继续(是/否)?是的

成功卸载 numpy-1.19.4

PS C:\Users\XXXX> pip install numpy==1.19.3

收集numpy==1.19.3

正在下载 numpy-1.19.3-cp39-cp39-win_amd64.whl (13.3 MB)

 |████████████████████████████████| 13.3 MB 6.4 MB/s

安装收集的包:numpy

成功安装numpy-1.19.3

【讨论】:

以上是关于你如何修复 numpy 和 pandas 的“runtimeError: package failed to pass a sanity check”?的主要内容,如果未能解决你的问题,请参考以下文章

如何确定 Pandas/NumPy 中的列/变量是不是为数字?

如何获取“matplotlib”、“numpy”、“scipy”、“pandas”等的存根文件?

Pandas / Numpy - 如何获取和比较每列与每列的计数并写入 csv?

如何获得按 numpy 和 pandas 中的变量分组的平均值? [复制]

如何加快遍历数组/矩阵的速度?尝试了 pandas 和 numpy 数组

Python下载numpy和pandas踩过的大坑