在Windows上使用Theano:缺少lazylinker_ext.pyd

时间:2015-11-13 22:16:22

标签: windows theano

运行包含import theano的Python脚本时,出现此错误:

===============================
00001   #include <Python.h>
00002   #include "structmember.h"
00003   #include <sys/time.h>
00004   
00005   // Old Python compatibility from here:
00006   // http://www.python.org/dev/peps/pep-0353/
[...]
01077       return RETVAL;
01078   }
01079   
01080   
Problem occurred during compilation with the command line below:
C:\programming\cpp\gcc-4.9.2-tdm-1-core\bin\g++.exe -shared -g -D NPY_NO_DEPRECATED_API=NPY_1_7_API_VERSION -m64 -DMS_WIN64 -IC:\Anaconda\lib\site-packages\numpy\core\include -IC:\Anaconda\include -o C:\Users\Francky\AppData\Local\Theano\compiledir_Windows-7-6.1.7601-SP1-Intel64_Family_6_Model_58_Stepping_9_GenuineIntel-2.7.10-64\lazylinker_ext\lazylinker_ext.pyd C:\Users\Francky\AppData\Local\Theano\compiledir_Windows-7-6.1.7601-SP1-Intel64_Family_6_Model_58_Stepping_9_GenuineIntel-2.7.10-64\lazylinker_ext\mod.cpp -LC:\Anaconda\libs -LC:\Anaconda -lpython27
===============================
g++.exe: error: CreateProcess: No such file or directory

Traceback (most recent call last):
  File "C:\Users\Francky\Documents\GitHub\nlp\6864project\code\theano\eval_dialog_cat.py", line 7, in <module>
    import theano 
  File "c:\users\francky\downloads\theano-rel-0.7\theano-rel-0.7\theano\__init__.py", line 55, in <module>
    from theano.compile import \
  File "c:\users\francky\downloads\theano-rel-0.7\theano-rel-0.7\theano\compile\__init__.py", line 9, in <module>
    from theano.compile.function_module import *
  File "c:\users\francky\downloads\theano-rel-0.7\theano-rel-0.7\theano\compile\function_module.py", line 18, in <module>
    import theano.compile.mode
  File "c:\users\francky\downloads\theano-rel-0.7\theano-rel-0.7\theano\compile\mode.py", line 11, in <module>
    import theano.gof.vm
  File "c:\users\francky\downloads\theano-rel-0.7\theano-rel-0.7\theano\gof\vm.py", line 568, in <module>
    import lazylinker_c
  File "c:\users\francky\downloads\theano-rel-0.7\theano-rel-0.7\theano\gof\lazylinker_c.py", line 116, in <module>
    preargs=args)
  File "c:\users\francky\downloads\theano-rel-0.7\theano-rel-0.7\theano\gof\cmodule.py", line 2010, in compile_str
    (status, compile_stderr.replace('\n', '. ')))
. ception: Compilation failed (return status=1): g++.exe: error: CreateProcess: No such file or directory

看起来g++.exe: error: CreateProcess: No such file or directory是由缺少文件C:\Users\Francky\AppData\Local\Theano\compiledir_Windows-7-6.1.7601-SP1-Intel64_Family_6_Model_58_Stepping_9_GenuineIntel-2.7.10-64\lazylinker_ext\lazylinker_ext.pyd引起的。我怎么能得到这个文件?

我在Anaconda Python 2.7.10 X64中安装了Theano,如下所示:

conda install mingw libpython
pip install theano

然后我更改了g ++编译器TDM-GCC MinGW Compiler,以便编译为x64(否则我得到C:\Users\Francky\AppData\Local\Theano\compiledir_Windows-7-6.1.7601-SP1-Intel64_Family_6_Model_58_Stepping_9_GenuineIntel-2.7.10-64\lazylinker_ext\mod.cpp:1: sorry, unimplemented: 64-bit mode not compiled in)。

2 个答案:

答案 0 :(得分:1)

来自here

您是否关闭了命令窗口并打开了一个新窗口?对环境变量的更改(通过标准Windows对话窗口)将不适用于打开命令窗口(您可以在打开的命令窗口中单独设置变量并手动设置)。

如果设置环境变量没有帮助,linked question的其他答案可能会有所帮助。

答案 1 :(得分:1)

我花了几天时间。最终,在将G ++编译器更改为64位之后,我不得不更新theano(我使用了http://mingw-w64.org/doku.php)。 Windows的“ where”命令可轻松查看g ++的安装位置: g ++ 的位置为我提供了多个位置,包括32位版本。