你如何修复 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 中的变量分组的平均值? [复制]