导入 theano 时出错“无法导入名称 gof”
Posted
技术标签:
【中文标题】导入 theano 时出错“无法导入名称 gof”【英文标题】:Error importing theano "cannot import name gof" 【发布时间】:2015-10-05 07:21:30 【问题描述】:我目前遇到错误
ImportError: 无法导入名称 gof
在导入 theano 时。
>>> import theano
Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
import theano
File "C:\Python27\lib\site-packages\theano\__init__.py", line 63, in <module>
from theano.compile import (
File "C:\Python27\lib\site-packages\theano\compile\__init__.py", line 9, in <module>
from theano.compile.function_module import *
File "C:\Python27\lib\site-packages\theano\compile\function_module.py", line 16, in <module>
from theano import gof
ImportError: cannot import name gof
我使用的是python 2.7.10()。 Theano 是使用pip install --upgrade --no-deps git+git://github.com/Theano/Theano.git
安装的。
希望得到你的建议来解决这个问题
【问题讨论】:
你看过github.com/Theano/Theano/issues/2406 吗?你会不会引起命名冲突(比如groups.google.com/forum/#!topic/theano-users/DWJMN9LJAWY)?当您运行 Python 或 Python 脚本时,您在哪个目录中?你还尝试了什么? 【参考方案1】:大多数时候,当我看到这个错误时,它是由这两个错误引起的:
1) Theano 中的语法错误。更新 Theano 并确保没有本地修改。我在 Theano 的主人身上看到了这个错误,但以防万一。
2) 当安装了多个版本的 Theano 时。
在这两种情况下,删除所有版本的 Theano。多次执行以确保没有剩余。然后重新安装。
从记忆中,当它不是开发过程中的语法错误时(但不是在您使用的 Theano 的主版本中),这总是解决问题
【讨论】:
【参考方案2】:这个ImportError
可能是因为Theano 是unable to compile the gof
module itself。如果是这种情况,您将看到一条类似于“Exception: Compilation Failed (return status=1): C:\Long\Path\...\mod.cpp:1: sorry, unimplemented: 64-bit mode not compiled in
”的错误消息。
使用 Conda 修复
如果您要将theano
安装到conda
环境中,请确保您有适用于该环境的C 编译器。
命令
conda install m2w64-toolchain
将为您的环境提供与机器其他部分隔离的 C 编译器。
m2w64-toolchain
包安装后,import theano
应该可以工作了
手动修复
如果您自己安装 Theano,thesethreads 的两点可能会有所帮助:
安装bleeding edge version of Theano 从http://www.lfd.uci.edu/%7Egohlke/pythonlibs/ 安装libpython
【讨论】:
【参考方案3】:我假设您使用的是 Windows 7 或更高版本。
如果您已安装 Python Anaconda,请打开 Windows Powershell 或命令提示符并输入 conda install mingw libpython
,然后再输入 pip install theano
或者,如果您没有 Anaconda,请从
下载这些软件包 anaconda.org/anaconda/mingw/files anaconda.org/anaconda/libpython/files github.com/Theano/Theano然后打开命令提示符,导航到每个文件夹并输入
python setup.py install
现在运行 Python 和 import theano
可能的错误:
如果你得到 RuntimeError: "To use MKL 2018 with Theano you MUST set "MKL_THREADING_LAYER=GNU" in your environement" 那么
进入控制面板 > 系统 > 高级系统设置并选择“环境变量”。
在“系统变量”部分,新建一个变量名MKL_THREADING_LAYER
,并将其值设置为GPU
如果您遇到其他类型的错误,请尝试以下操作:
在您的主文件夹 C:\Users\.theanorc
的空文件(没有文件名的文件扩展名)。如果您收到错误“您必须输入文件名”,请查看 ***.com/q/5004633
打开.theanorc
并写下:
[global]
cxx=C:\<path to Anaconda>\Anaconda3\MinGW\bin\g++.exe
再次运行 Python 并导入 theano。如果可行,那么您可能可以删除.theanorc
【讨论】:
【参考方案4】:就我而言,解决方法是安装一个可作为共享库调用的 python 构建:
PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 2.7.15
【讨论】:
以上是关于导入 theano 时出错“无法导入名称 gof”的主要内容,如果未能解决你的问题,请参考以下文章
在 Windows 7 上导入 Theano 时出现 g++ 错误
无法从“keras.backend”导入名称“theano_backend”
导入 theano 失败。“cannot import name gof”
tensorflow和theano的python3 keras导入错误