运行 来自 IDE 时的 numba 异常(VS2015)

numba exception when run from inside IDE (VS2015)

我有 visual studio 2015 和 PTVS,用 Anaconda Python 3.4 和 3.5(64 位)测试过。

当脚本导入 numba 时我立即得到一个异常,这是一个最小的例子:

import numba

例外情况是:

dictionary changed size during iteration

异常来自

envs\python3.5\Lib\site-packages\numba\config.py line 169

似乎只有在 VS 内部,以下代码才会出错,请注意它遍历 locals() 并正在更新 globals()

for name, value in locals().items():
        if name.isupper():
            globals()[name] = value

运行 来自 Interactive window 的脚本,在 NVidia 的 Visual Profiler 中,jupyter notebook/command 行解释器工作得很好所以我怀疑它一定与 visual studio.

当我在环境之间比较 sys.modules 的内容时,我发现 visual studio 在调试时导入了一些额外的模块

'visualstudio_py_debugger',
'visualstudio_py_repl', 
'visualstudio_py_util'

否则环境之间没有区别。此外,没有 numba 的脚本在将它们导入 VS 时不会抛出任何异常。我该如何解决这个问题?

在函数外,locals() 和 globals() 引用相同的数据结构。 Python 不允许更改正在迭代的数据结构。 这已在此提交的库中修复 https://github.com/numba/numba/commit/e50ab6ee4d95192d364cccced36cf0889860d023