7
>>> 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. Кто-нибудь поможет мне понять это?Theano ошибка импорта: Нет модуль с именем cPickle

PS: Мое проявляющее устройство - Macbook Pro 13 (начало 2015 года); моя системная версия - OS X 10.10.5; версия для python - 2,7.10

====================== ===================================

Кажется, у меня установлена ​​последняя версия шести на моем Mac.

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: [email protected] 
License: MIT 
Location: /Library/Python/2.7/site-packages 
Requires: 
+0

'six' - это пакет совместимости между кодом Python 2 и Python 3. По какой-то причине он не определяет, что у вас есть доступный модуль 'cPickle', хотя Python 2 всегда имеет его. Я предлагаю вам открыть источник «six.moves» и попытаться понять, что там происходит. –

+0

Нет источника 'six.moves', а способ' six' "определяет« если доступ к 'cPickle' по существу жестко закодирован в нем на основе того, работает ли он под Python 2 или 3. Убедитесь, что у вас установлена ​​последняя версия' шесть (1.9.0). Если да, сообщите о проблеме как об ошибке через [https://bitbucket.org/gutworth/six](https://bitbucket.org/gutworth/six). – martineau

+0

@martineau Я уверен, что у меня есть последняя версия «six». (См. Мое последнее обновление вопроса) –

ответ

7

У меня была такая же проблема и модернизирует шесть решить проблему:

sudo easy_install --upgrade six 
+0

Это сработало для меня, спасибо! –

2

Старайтесь избегать использования sudo любой ценой. Откройте питона сеанс и запустить

import six 
print six.__version__ 
print six.__file__ 

Версия, вероятно, не будет последним (1.10.0), так что идти вручную удалить six.py и six.pyc файлы на импортируемый пути, а затем запустить pip install six. Теперь Python должен импортировать последнюю версию из шести, совместимую с Theano :)

Смежные вопросы