2015-05-01 43 views
8

我正在運行lasagne/nolearn,它使用theano。運行theano時編譯失敗 - Windows 8.1的64位與蟒蛇python分佈

安裝和編譯theano特別困難。安裝64位g ++編譯器後發生以下編譯錯誤。

非常感謝幫助。謝謝!編譯過程中發生

問題與下面的命令行:

C:\MinGW\bin\g++.exe -shared -g -march=corei7-avx -mcx16 -msahf -mmovbe -maes -mpclmul -mpopcnt -mabm -mno-lwp -mfma -mno-fma4 -mno-xop -mbmi -mbmi2 -mno-tbm -mavx -mavx2 -msse4.2 -msse4.1 -mlzcnt -mno-rtm -mno-hle -mrdrnd -mf16c -mfsgsbase -mno-rdseed -mno-prfchw -mno-adx -mfxsr -mxsave -mxsaveopt --param l1-cache-size=0 --param l1-cache-line-size=0 --param l2-cache-size=256 -mtune=generic -D NPY_NO_DEPRECATED_API=NPY_1_7_API_VERSION -m64 -DMS_WIN64 -IC:\Users\aleja_000\Anaconda\lib\site-packages\numpy\core\include -IC:\Users\aleja_000\Anaconda\include -o C:\Users\aleja_000\AppData\Local\Theano\compiledir_Windows-8-6.2.9200-Intel64_Family_6_Model_60_Stepping_3_GenuineIntel-2.7.9-64\lazylinker_ext\lazylinker_ext.pyd C:\Users\aleja_000\AppData\Local\Theano\compiledir_Windows-8-6.2.9200-Intel64_Family_6_Model_60_Stepping_3_GenuineIntel-2.7.9-64\lazylinker_ext\mod.cpp -LC:\Users\aleja_000\Anaconda\libs -LC:\Users\aleja_000\Anaconda -lpython27 
Traceback (most recent call last): 
    File "C:\Users\aleja_000\Anaconda\lib\site-packages\IPython\core\interactiveshell.py", line 3032, in run_code 
=============================== 
C:\Users\aleja_000\AppData\Local\Theano\compiledir_Windows-8-6.2.9200-Intel64_Family_6_Model_60_Stepping_3_GenuineIntel-2.7.9-64\lazylinker_ext\mod.cpp:1:0: sorry, unimplemented: 64-bit mode not compiled in 
#include <Python.h> 
^ 

    exec(code_obj, self.user_global_ns, self.user_ns) 
    File "<ipython-input-2-1e86b04c8a9c>", line 6, in <module> 
    from lasagne.layers import DenseLayer 
    File "C:\Program Files (x86)\JetBrains\PyCharm Community Edition 4.0.5\helpers\pydev\pydev_import_hook.py", line 21, in do_import 
    module = self._system_import(name, *args, **kwargs) 
    File "c:\users\aleja_000\anaconda\src\lasagne\lasagne\__init__.py", line 5, in <module> 
    from . import nonlinearities 
    File "C:\Program Files (x86)\JetBrains\PyCharm Community Edition 4.0.5\helpers\pydev\pydev_import_hook.py", line 21, in do_import 
    module = self._system_import(name, *args, **kwargs) 
    File "c:\users\aleja_000\anaconda\src\lasagne\lasagne\nonlinearities.py", line 6, in <module> 
    from theano.tensor.nnet import sigmoid 
    File "C:\Program Files (x86)\JetBrains\PyCharm Community Edition 4.0.5\helpers\pydev\pydev_import_hook.py", line 21, in do_import 
    module = self._system_import(name, *args, **kwargs) 
    File "C:\Users\aleja_000\AppData\Roaming\Python\Python27\site-packages\theano\__init__.py", line 55, in <module> 
    from theano.compile import (
    File "C:\Program Files (x86)\JetBrains\PyCharm Community Edition 4.0.5\helpers\pydev\pydev_import_hook.py", line 21, in do_import 
    module = self._system_import(name, *args, **kwargs) 
    File "C:\Users\aleja_000\AppData\Roaming\Python\Python27\site-packages\theano\compile\__init__.py", line 9, in <module> 
    from theano.compile.function_module import * 
    File "C:\Program Files (x86)\JetBrains\PyCharm Community Edition 4.0.5\helpers\pydev\pydev_import_hook.py", line 21, in do_import 
    module = self._system_import(name, *args, **kwargs) 
    File "C:\Users\aleja_000\AppData\Roaming\Python\Python27\site-packages\theano\compile\function_module.py", line 17, in <module> 
    import theano.compile.mode 
    File "C:\Program Files (x86)\JetBrains\PyCharm Community Edition 4.0.5\helpers\pydev\pydev_import_hook.py", line 21, in do_import 
    module = self._system_import(name, *args, **kwargs) 
    File "C:\Users\aleja_000\AppData\Roaming\Python\Python27\site-packages\theano\compile\mode.py", line 11, in <module> 
    import theano.gof.vm 
    File "C:\Program Files (x86)\JetBrains\PyCharm Community Edition 4.0.5\helpers\pydev\pydev_import_hook.py", line 21, in do_import 
    module = self._system_import(name, *args, **kwargs) 
    File "C:\Users\aleja_000\AppData\Roaming\Python\Python27\site-packages\theano\gof\vm.py", line 654, in <module> 
    import lazylinker_c 
    File "C:\Program Files (x86)\JetBrains\PyCharm Community Edition 4.0.5\helpers\pydev\pydev_import_hook.py", line 21, in do_import 
    module = self._system_import(name, *args, **kwargs) 
    File "C:\Users\aleja_000\AppData\Roaming\Python\Python27\site-packages\theano\gof\lazylinker_c.py", line 125, in <module> 
    preargs=args) 
    File "C:\Users\aleja_000\AppData\Roaming\Python\Python27\site-packages\theano\gof\cmodule.py", line 2042, in compile_str 
    (status, compile_stderr.replace('\n', '. '))) 
Exception: Compilation failed (return status=1): C:\Users\aleja_000\AppData\Local\Theano\compiledir_Windows-8-6.2.9200-Intel64_Family_6_Model_60_Stepping_3_GenuineIntel-2.7.9-64\lazylinker_ext\mod.cpp:1:0: sorry, unimplemented: 64-bit mode not compiled in 
. #include <Python.h> 
.^
. 

回答

5

我發現了什麼問題是,想發佈的解決方案。這個特殊的問題是由於文件libpythonxx.a文件在找到pythonxx.dll文件的同一目錄中丟失(在我的情況下是python27.dll,因此我創建了libpython27.a文件)。

高貴的靈魂要生成這樣的文件,請將pythonxx.dll文件複製到臨時目錄,然後在Windows控制檯中鍵入以下命令:

gendef pythonXX.dll

dlltool --as-flags = - 64 -m i386:x86-64 -k --output-lib libpythonXX.a --input-def pythonXX.def

然後將生成的libpythonxx.a文件粘貼到與pythonxx.dll文件相同的目錄中。

在Windows中,您通常會在C:\ Windows \ System3下找到該文件,但如果您使用的是anaconda,那麼您會在下面找到它?

C:\ Users \ xxxxx \ Anaconda \ libs,xxxxx是您的用戶。

+0

蟒蛇文件可以在這裏找到:C:\ Windows \ System32 \ –

+0

謝謝,在'C:\ Users \ xxxxx \ Anaconda \ libs'中,你沒有'libpython27.a'文件嗎? –

+1

嗨,我使用WinPython和python3.5。它既有.dll文件也有.a文件,但無論我把文件放在哪裏,我仍然得到如上所示的相同錯誤。有任何想法嗎? – gilgamash

1

對於使用WinPython和MinGW,在這裏一些額外的信息,這些:

1)甚至懶得使用64位Windows時嘗試mingw32的包,馬上去mingw64。這將停止發生以上顯示的錯誤

2)對於WinPython,.theanorc或.theanorc.txt文件不能位於您的主目錄中,而必須位於WinPython/settings目錄中!

3)製作的東西通過使用Linux風格路徑分隔符,例如,對於g ++標誌,CXX = d更容易:

4)NVCC需要的/ dev /的mingw-W64/mingw64/bin中/克++ EXE。 Windows路徑已列入中的cl.exe文件,它可以在一般你下的東西被發現VS安裝像(VSPATH)/ VC/bin中

問候, G.