Théano importation error: No module named cPickle
>>> 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
Je suis sûr que il n'y a pas de problème avec cPickle. Peut-il être le problème des autres dépendances? C'est vrai que j'ai mis à jour tous les paquets ce matin, alors qu'un conflit de version peut se produire. Néanmoins, le problème persiste après je suis passé à la pointe de la version de théano. Quelqu'un voudrait-il m'aider à comprendre?
PS: Mon le développement de l'appareil est le Macbook Pro 13(début 2015); ma version du système OS X 10.10.5; version de python est 2.7.10
=========================== Deuxième Édition ===================================
Il semble que je dois avoir la dernière version de six installé sur mon 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: benjamin@python.org
License: MIT
Location: /Library/Python/2.7/site-packages
Requires:
six
est un package de compatibilité entre Python 2 et Python 3 code. Pour une raison quelconque, il n'est pas de déterminer vous avez cPickle
module disponible, même si Python 2 elle l'a toujours. Je vous suggère d'ouvrir la six.moves
source et essayer de comprendre ce qui se passe là.Il n'y a pas de
six.moves
source et la façon dont six
"détermine" si cPickle
est disponible est essentiellement codé en dur dans elle basée sur le fait qu'il tourne sous Python 2 ou 3. Assurez-vous d'avoir la dernière version de six
(1.9.0) installé. Si oui, signalez le problème comme un bug via https://bitbucket.org/gutworth/six.Je suis sûr que j'ai la dernière version de "six".(voir ma dernière mise à jour de la question)
Ensuite, il ressemble à un bug dans
six
pour moi parce que la import six.moves.cPickle as pickle
devrait fonctionner basé sur le documentation et le code source que j'ai regardé, alors je pense que vous devriez le signaler en tant que tel pour laisser Benjamin (l'auteur). Vous pouvez peut-être contourner le problème en modifiant le cmodule.py
source vous-même (à juste import cPickle as pickle
puisque vous êtes à l'aide de Python 2).J'ai le même problème avec CentOS 6.x
OriginalL'auteur Yiqun Liu | 2015-09-20
Vous devez vous connecter pour publier un commentaire.
J'ai eu le même problème et la mise à niveau de six résolu problème:
OriginalL'auteur dipendra009
Essayez d'éviter d'utiliser
sudo
à tout prix. Ouvrir un python session et exécuterLa version ne sera probablement pas la plus récente (1.10.0), alors allez supprimer manuellement les six.py et six.pyc fichiers importés chemin, puis exécutez
pip install six
. Python devrait maintenant être de l'importation de la version la plus récente de six, compatible avec Théano 🙂OriginalL'auteur BoltzmannBrain