什么会减慢/阻止 python.net 调用?

问题描述

我正在使用 python.net 在 C# 中导入 python 模块。直到最近,当我遇到模块导入速度显着放缓时,一切都运行良好。除了 Windows 更新和 McAfee 更新之外,机器上没有任何变化。我怀疑 Windows Defender 或 McAfee 会阻止 python.net 网桥,但欢迎任何解决此问题的线索或以前的经验。我在本地工作,所以这不是共享驱动器问题。

这是一个在 c# 中可重现的示例:

    PythonEngine.Initialize();

    using (Py.GIL())
    {
        PythonScope = Py.CreateScope();

        PythonScope.Exec("import numpy as np");  //this line recently takes forever (> 15 sec !!!) 
    }

所以这里我以 numpy 包导入为例。有趣的是,如果我在C#调用前后分别在Git Batch中对这个包的导入进行计时,你也可以看到巨大的差异:

Git Batch snapshot

然后,如果我稍等一下,再次尝试在 Git Batch 中导入,它就会恢复正常。因此,python.net 发生了一些非常奇怪的事情。欢迎提供有关导致这种情况的原因的任何建议/线索。

解决方法

McAfee Adaptive Threat Protection 正在阻止 python.net 调用。您需要禁用它才能使用 python.net。