Pyximport构建错误

时间:2015-03-10 18:20:52

标签: python numpy cython distutils mingw-w64

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

ale_data_set.py中,它导入pyximport以编译shift.pyx。我收到的错误:

  

ImportError:构建模块转换失败:[' ImportError:DLL加载   失败:动态链接库(DLL)初始化例程失败。\ n']

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

import numpy as np

import pyximport; pyximport.install()

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编译器。

1 个答案:

答案 0 :(得分:0)

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