【问题标题】:Theano import error: No module named cPickleTheano 导入错误:没有名为 cPickle 的模块
【发布时间】:2015-12-17 05:22:15
【问题描述】:
>>> import theano
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Library/Python/2.7/site-packages/theano/__init__.py", line 52, in <module>
from theano.gof import (
 File "/Library/Python/2.7/site-packages/theano/gof/__init__.py", line 38, in <module>
from theano.gof.cc import \
File "/Library/Python/2.7/site-packages/theano/gof/cc.py", line 30, in <module>
from theano.gof import link
File "/Library/Python/2.7/site-packages/theano/gof/link.py", line 18, in <module>
from theano.gof.type import Type
File "/Library/Python/2.7/site-packages/theano/gof/type.py", line 17, in <module>
from theano.gof.op import CLinkerObject
File "/Library/Python/2.7/site-packages/theano/gof/op.py", line 25, in <module>
from theano.gof.cmodule import GCC_compiler
File "/Library/Python/2.7/site-packages/theano/gof/cmodule.py", line 8, in <module>
import six.moves.cPickle as pickle
ImportError: No module named cPickle

我很确定cPickle 没有问题。会不会是其他依赖的问题?确实是我今天早上升级了所有的包,所以可能会出现版本冲突。尽管如此,在我切换到 theano 的前沿版本后,问题仍然存在。有人能帮我弄清楚吗?

PS:我的开发设备是 Macbook Pro 13(2015 年初);我的系统版本是 OS X 10.10.5; python版本是2.7.10

============================ 第二次编辑================== =================

我的 Mac 上似乎确实安装了最新版本的 6。

YiqundeMacBook-Pro:~ Leo$ pip show six
---
Metadata-Version: 2.0
Name: six
Version: 1.9.0
Summary: Python 2 and 3 compatibility utilities
Home-page: http://pypi.python.org/pypi/six/
Author: Benjamin Peterson
Author-email: benjamin@python.org
License: MIT
Location: /Library/Python/2.7/site-packages
Requires: 

【问题讨论】:

  • six 是 Python 2 和 Python 3 代码之间的兼容性包。出于某种原因,即使 Python 2 总是有它,它也不能确定你有可用的 cPickle 模块。我建议您打开six.moves 源并尝试弄清楚那里发生了什么。
  • 没有six.moves 源,six“确定”cPickle 是否可用的方式基本上是硬编码到它的,具体取决于它是在 Python 2 还是 3 下运行。确保你有安装了最新版本的six (1.9.0)。如果是这样,请通过https://bitbucket.org/gutworth/six 将问题报告为错误。
  • @martineau 我确定我有最新版本的“六”。(请参阅我对问题的最新更新)
  • 那么它在我看来就像six 中的一个错误,因为import six.moves.cPickle as pickle 应该基于documentation 和我看过的源代码工作——所以我认为你应该报告让本杰明(作者)知道。您可以通过自己更改 cmodule.py 源来解决此问题(仅更改为 import cPickle as pickle,因为您使用的是 Python 2)。
  • 我对 CentOS 6.x 也有同样的问题

标签: python python-2.7 neural-network theano conv-neural-network


【解决方案1】:

我遇到了同样的问题,升级解决了六个问题:

sudo easy_install --upgrade six

【讨论】:

    【解决方案2】:

    不惜一切代价尽量避免使用sudo。打开 python 会话并运行

    import six
    print six.__version__
    print six.__file__
    

    版本可能不是最新的(1.10.0),所以去手动删除导入路径下的 Six.py 和 Six.pyc 文件,然后运行pip install six。 Python 现在应该正在导入与 Theano 兼容的 6 的最新版本 :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-10
      • 2015-11-30
      • 2012-05-25
      • 2012-03-16
      • 2011-12-10
      • 2016-07-18
      • 2018-07-06
      相关资源
      最近更新 更多