在Windows 7上导入Theano时出现g ++错误

时间:2016-07-22 23:58:07

标签: g++ theano importerror

根据the theano installation guide,我尝试使用正确的g ++安装进行设置。我以前让theano使用python实现。我在python 3.4上的git repo中使用了theano的最新版本。我尝试过使用theano建议的TDM-GCC-64方法以及MinGW,两者都会产生完全相同的错误。 (尽可能复制)

Problem occurred during compilation with the command line below:
C:\MinGW\bin\g++.exe -shared -g -march=skylake -mmmx -mno-3dnow -msse -msse2 -msse3 
-mssse3 -mno-sse4a -mcx16 -msahf -mmovbe -maes -mno-sha -mpclmul -mpopcnt 
-mabm -mno-lwp -mfma -mno-fma4 -mno-xop -mbmi -mbmi2 -mno-tbm -mavx 
-mavx2 -msse4.2 -msse4.1 -mlzcnt -mrtm -mhle -mrdrnd -mf16c -mfsgsbase 
-mrdseed -mprfchw -madx -mfxsr -mxsave -mxsaveopt -mno-avx512f 
-mno-avx512er -mno-avx512cd -mno-avx512pf -mno-prefetchwt1 -mclflushopt 
-mxsavec -mxsaves -mno-avx512dq -mno-avx512bw -mno-avx512vl 
-mno-avx512ifma -mno-avx512vbmi -mno-clwb -mno-pcommit -mno-mwaitx 
-mno-clzero -mno-pku --param l1-cache-size=32 --param 
l1-cache-line-size=64 --param l2-cache-size=8192 -mtune=skylake 
-DNPY_NO_DEPRECATED_API=NPY_1_7_API_VERSION -m64 -DMS_WIN64 
-IC:\Python34_64bit\lib\site-packages\numpy\core\include
IC:\Python34_64bit\include -IC:\Python34_64bit\lib\site-packages\theano\gof
-o C:\Users\Jwely\AppData\Local\Theano\compiledir_Windows-7-6.1.7601-SP1-Intel64_Family_6_Model_94_Stepping_3_GenuineIntel-3.4.4-64\lazylinker_ext\lazylinker_ext.pyd 
C:\Users\Jwely\AppData\Local\Theano\compiledir_Windows-7-6.1.7601-SP1-Intel64_Family_6_Model_94_Stepping_3_GenuineIntel-3.4.4-64\lazylinker_ext\mod.cpp 
-LC:\Python34_64bit\libs -LC:\Python34_64bit -lpython34


In file included from c:\mingw\include\c++\6.1.0\math.h:36:0,
from C:\Python34_64bit\include/pyport.h:328,
from C:\Python34_64bit\include/Python.h:50,
from C:\Users\Jwely\AppData\Local\Theano\compiledir_Windows-7-6.1.7601-SP1-Intel64_Family_6_Model_94_Stepping_3_GenuineIntel-3.4.4-64\lazylinker_ext\mod.cpp:1:
c:\mingw\include\c++\6.1.0\cmath:1133:11: error: '::hypot' has not been declared
    using ::hypot;
            ^~~~~

值得注意的是,在打印此错误之前,它会输出整个文件的代码,你可以在这里找到整个错误输出

我不确定接下来要尝试什么,我已经按照指示两次,对某些依赖项使用了几种不同的安装方法,并确保在每次尝试和重新启动之间清理系统路径。

6 个答案:

答案 0 :(得分:28)

这对我有用:

  1. 转到您的用户文件夹:C:/ Users / [username]
  2. 创建.theanorc文件(如果它尚未存在)
  3. 确保它包含以下行:

    [gcc]
    cxxflags = -D_hypot=hypot
    

答案 1 :(得分:3)

"Error: '::hypot' has not been declared" in cmath while trying to embed Python Error building Boost 1.49.0 with GCC 4.7.0

我的解决方案是注释掉所有

#define hypot _hypot
pyconfig.h文件中的

答案 2 :(得分:0)

这对我有用

  1. 转到System properties/Advance system setting
  2. 添加MinGW安装路径(如果已添加),看起来像C:\{your MingW installation}\bin 将其更改为C:\{your MingW installation}

答案 3 :(得分:0)

上述答案可能是更好,更持久的解决方案。为了快速解决问题,以下内容对我有用:

import theano
theano.config.gcc.cxxflags = "-D_hypot=hypot"

...使用Windows 10,Anaconda 4.4,Python 2.7,Theano v0.10.0.dev1,m2w64-toolchain v5.3.0

答案 4 :(得分:0)

如果您无法创建名称为.theanorc的文件。
您可以在控制台中使用此代码,但是在C:/Users/[username]中打开cmd,然后编写python,然后将以下代码粘贴到此处:

import os
with open(os.path.join(os.environ["USERPROFILE"], ".theanorc"), "w") as f:
    f.write("[gcc]\ncxxflags = -D_hypot=hypot")

答案 5 :(得分:-1)

首先,卸载所有Theano版本。

然后:

pip install pydot-ng

conda install mingw libpython

pip install git+https://github.com/Theano/Theano.git#egg=Theano