python 3.5 import theano ::hypot error

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 3.5 import theano ::hypot error相关的知识,希望对你有一定的参考价值。

# win10 , mingw(nuwen,g++ 6.3), python 3.5 ,

描述:

import theano 时生成动态的 mod.cpp ,然后编译库的时候报 ::hypot 未定义

原因:

hypot 在"C:\Program Files\Python35\include\pyconfig.h"被重定义了

pyconfig.h

-------------------------------------------

#define hypot _hypot

-------------------------------------------

解决思路:

在import theano 调用 g++ 编译mod.cpp的时候添加编译参数  -D_hypot=hypot

实现:

有多种方法可行,例如给 theano 添加配置文件等。

一种实际操作方法:

搜索 theano 文件夹下面含有编译参数字符串的文件,然后在某个编译参数后面加上 -D_hypot=hypot

例如:

cc.py      "C:\Program Files\Python35\Lib\site-packages\theano\gof\cc.py"

-------------------------------------------

def compile_args(self):

...

"-Wno-write-strings",  # generated by our code generator...
"-D_hypot=hypot",
]

-------------------------------------------

cmodule.py   "C:\Program Files\Python35\Lib\site-packages\theano\gof\cmodule.py"

-------------------------------------------

def get_gcc_shared_library_arg():

...

return ‘-shared -D_hypot=hypot

-------------------------------------------

 



以上是关于python 3.5 import theano ::hypot error的主要内容,如果未能解决你的问题,请参考以下文章

Python学习笔记windows下安装theano

ModuleNotFoundError:没有名为“theano.tensor.shared_randomstreams”的模块

深度学习之Keras检测恶意流量

导入 theano 失败。“cannot import name gof”

ImportError: cannot import name gof

Windows下安装theano成功,但一import就报decode错是啥原因