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 

Sono abbastanza sicuro non v'è alcun problema con cPickle. Può essere il problema di altre dipendenze? È vero che stamattina ho aggiornato tutti i pacchetti, in modo che si possa verificare un conflitto di versione. Ciò nondimeno, il problema esiste ancora dopo che sono passato alla versione più sanguinante di theano. Qualcuno potrebbe aiutarmi a capirlo?Theano errore di importazione: No module named cPickle

PS: il mio dispositivo di sviluppo è Macbook Pro 13 (inizio 2015); la mia versione di sistema è OS X 10.10.5; versione di Python è 2.7.10

=========================== Seconda Modifica =========== =========

Sembra che l'ultima versione di sei sia installata sul mio 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' è un pacchetto di compatibilità tra Python 2 e Python 3 code. Per qualche ragione non determina che hai il modulo 'cPickle' disponibile anche se Python 2 lo ha sempre. Ti suggerisco di aprire la sorgente 'six.moves' e provare a capire cosa sta succedendo lì. –

+0

Non esiste una sorgente di 'six.moves' e il metodo' six' "determina" se 'cPickle' è disponibile è essenzialmente codificato in esso a seconda che sia in esecuzione in Python 2 o 3. Assicurati di avere l'ultima versione di' six' (1.9.0) installato. In tal caso, segnala il problema come un bug tramite [https://bitbucket.org/gutworth/six](https://bitbucket.org/gutworth/six). – martineau

+0

@martineau Sono sicuro di avere l'ultima versione di 'sei'. (Vedi il mio ultimo aggiornamento della domanda) –

risposta

7

Ho avuto lo stesso problema e aggiornamento sei problema risolto:

sudo easy_install --upgrade six 
+0

Questo ha funzionato per me, grazie! –

2

evitare di utilizzare sudo a tutti i costi. Aprire una sessione di pitone ed eseguire

import six 
print six.__version__ 
print six.__file__ 

La versione probabilmente non sarà più recente (1.10.0), in modo da andare eliminare manualmente i file six.py e six.pyc nel percorso importati, e quindi eseguire pip install six. Python dovrebbe ora importare l'ultima versione di sei, compatibile con Theano :)