Pyximport 构建错误

Pyximport build errors

现在我正在尝试编译 运行 Deep Q Learning。除了与 pyximport 相关的一个问题外,我已经设置好一切并正常工作。

ale_data_set.py, it imports pyximport to compile shift.pyx。我收到的错误:

ImportError: Building module shift failed: ['ImportError: DLL load failed: A dynamic link library (DLL) initialization routine failed.\n']

当我 运行 ale_data_set.py 顶部的行时,我得到同样的错误:

import numpy as np

import pyximport; pyximport.install()

import shift

问题是,有时我可以得到它 运行 import shift 就好了。有时我可以 reload(pyximport),然后调用 pyximport.install()import shift 就好了。其他时候它不起作用。

对我来说有趣的是,有时它不起作用,当我退出时(通过 control-c),我得到这个:

Exception KeyboardInterrupt in <module 'threading' from 'C:\SciSoft
\WinPython-64bit-2.7.9.3\python-2.7.9.amd64\Lib\threading.pyc'> ignored

这似乎告诉我它还在后台编译,或者至少线程没有返回。对我来说,有时它起作用,我只是碰巧在它完成编译后调用 import shift

有谁知道这可能是什么原因造成的?

如果这只是一个线程问题,有没有办法让我从编译 shift 中获取线程,这样我就可以 wait 了?

编辑:我也试过设置 numpy include_dirs 但没有帮助。

我还检查以确保路径中没有空格,GCC 在 PATH 中,并且还安装了 MS 编译器。

所以我仍然不确定为什么在调用 pyximport 后它没有正确导入,但我确实注意到 shift.pyd 似乎正在正确创建。因此,我获取了文件(在构建输出目录中)并将其复制到 *PythonDir*/Lib/site-packages。我现在可以只调用 import shift 而无需使用 pyximport,它似乎工作得很好。