导入 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导入错误

Excel插入图片时总是显示:导入此文件时出错,怎么回事【图片】

SQL Server 2005导入数据时出错,导入的是TXT文本格式