web-dev-qa-db-fra.com

ImportError: Aucun module nommé Crypto.Cipher

Lorsque j'essaie d'exécuter app.py (Python 3.3, PyCrypto 2.6), virtualenv renvoie constamment l'erreur mentionnée ci-dessus. Ma déclaration d'importation est simplement from Crypto.Cipher import AES. J'ai cherché des doublons et vous pourriez dire qu'il y en a, mais j'ai essayé les solutions (bien que la plupart ne soient même pas des solutions) et rien n'a fonctionné.

Vous pouvez voir à quoi ressemblent les fichiers de PyCrypto ci-dessous:

92
Graham Smith

J'ai eu le même problème (bien que sur Linux). La solution était assez simple - ajoutez:

libraries:
- name: pycrypto
  version: "2.6"

dans mon fichier app.yaml. Puisque cela a fonctionné correctement dans le passé, je suppose que ceci est une nouvelle exigence.

51
Patrick Jordan

J'ai eu le même problème sur mon Mac lors de l'installation avec pip. J'ai ensuite retiré pycrypto et l'ai réinstallé avec easy_install, comme ceci:

pip uninstall pycrypto
easy_install pycrypto

aussi comme l'a commenté Luke: Si vous avez des problèmes pour exécuter ces commandes, assurez-vous de les exécuter en tant qu'administrateur (Sudo) 

J'espère que cela t'aides!

171
elad silver

J'ai aussi rencontré ce problème sur Mac, et cela semble être lié au fait d'avoir un module "crypto" malheureusement nommé de la même manière (je ne sais pas à quoi cela sert) installé à côté de pycrypto via pip.

Le correctif semble supprimer à la fois crypto et pycrypto avec pip:

Sudo pip uninstall crypto
Sudo pip uninstall pycrypto

et réinstaller pycrypto:

Sudo pip install pycrypto

Maintenant, cela fonctionne comme prévu lorsque je fais quelque chose comme:

from Crypto.Cipher import AES
84
user42935

Sur le Mac ... si vous rencontrez ce problème ... essayez de voir si vous pouvez importer un chiffrement à la place?

Si c'est le cas .. le nom du paquet est le problème C vs c. Pour résoudre ce problème, ajoutez ces lignes en haut de votre script.

import crypto
import sys
sys.modules['Crypto'] = crypto

Vous savez pouvoir importer le paramiko avec succès.

27
pho

commande type:

Sudo pip install pycrypto
16
ruxming

La désinstallation de crypto et pycrypto fonctionne pour moi. Ensuite, installez uniquement pycrypto:

pip uninstall crypto 
pip uninstall pycrypto 
pip install pycrypto
10
tthreetorch

J'ai le même problème, 'ImportError: No module named Crypto.Cipher', depuis que j'ai utilisé GoogleAppEngineLauncher (version> 1.8.X) avec GAE Boilerplate sur OSX 10.8.5 (Mountain Lion). PyCrypto 2.6 est la version suggérée dans le kit de développement logiciel de Google App Engine avec Python 2.7. La solution qui a fonctionné pour moi était ...

1) Téléchargez l’extrait source pycrypto2.6 quelque part (~/Downloads/pycrypto26)

par exemple, git clone https://github.com/dlitz/pycrypto.git

2) cd (cd ~/Downloads/pycrypto26) puis 

3) Exécutez la commande de terminal suivante dans le dossier précédent afin d’installer pyCrypto 2.6 manuellement dans le dossier GAE. 

Sudo python setup.py install --install-lib /Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine
8
Lazaros Dinakis

si vous utilisez redhat, Fedora, centos:

Sudo yum install pycrypto

pour mon cas, je ne pourrais pas l'installer avec pip

8
hamed

Essayez avec pip3 :

Sudo pip3 install pycrypto
3
Arthur Araújo

Cela pourrait être un problème de chargement des modules python installés via pip. Reportez-vous à cette réponse Impossible de charger les modules Python installés via pip depuis le répertoire site-packages et essayez quelque chose comme:

python -m pip install pycrypto
2
user666N

Pour CentOS 7.4, j'ai d'abord installé pip, puis pycrypto à l'aide de pip:

> Sudo yum -y install python-pip 
> Sudo python -m pip install pycrypto
2
stuhpa

Je résous ce problème en modifiant la casse de la première lettre en majuscule . Assurez-vous que "" de Crypto.Cipher importe AES "" pas "de de crypto.Cipher import AES" ".

1
Zesheng LI

Travaillé pour moi (Ubuntu 17.10)

Supprimer venv et le recréer avec python v3.6

pip3 install PyJWT
Sudo apt-get install build-essential libgmp3-dev python3-dev
pip3 install cryptography
pip3 install pycryptodome
pip3 install pycryptodomex

Pycrypto est obsolète, a eu des problèmes avec, utilisé Pycryptodome

1
applekate

À ce jour, je rencontre le même problème lors de l'importation de from Crypto.Cipher import AES même si j'ai installé/réinstallé pycrypto à quelques reprises. En fin de compte, c’est parce que pip est paramétré par défaut sur python3. 

~ pip --version pip 18.0 from /usr/local/lib/python3.7/site-packages/pip (python 3.7)

installer pycrypo avec pip2 devrait résoudre ce problème.

1
Ryan

Ce problème peut être résolu en installant le compilateur C++ (python27 ou python26). Téléchargez-le à partir de Microsoft https://www.Microsoft.com/en-us/download/details.aspx?id=44266 et réexécutez la commande: pip install pycrypto pour exécuter l'accès Web via l'interface graphique lorsque vous interrompez le processus de easy_install.exe.

1
user8094201

Pour Windows 7:

J'ai eu cette erreur "Erreur de module Crypo.Cipher import AES"

Pour installer Pycrypto sous Windows,

Essayez ceci dans l'invite de commande,

Définir le chemin = C:\Python27\Scripts (c'est-à-dire le chemin où se trouve easy_install)

Puis exécutez ce qui suit,

easy_install pycrypto

Pour Ubuntu:

Essaye ça,

Téléchargez Pycrypto à partir de " https://pypi.python.org/pypi/pycrypto "

Puis changez votre chemin actuel en chemin téléchargé en utilisant votre terminal:

Exemple: root @ xyz-virtual-machine: ~/pycrypto-2.6.1 #

Puis exécutez ce qui suit en utilisant le terminal: 

installation de python.py

Cela a fonctionné pour moi. L'espoir fonctionne pour tous ..

1
JayaPrakash

Si vous êtes un macos, renommez le dossier lib lib/python3.7/site-packages/crypto en lib/python3.7/site-packages/Crypto

0
Jack

Je suis avec 3.7. Le problème persiste après que j'essaie d'installer crypto. Et pycrypto échoue dans mon cas. Donc finalement, ma construction a été transmise via le paquet ci-dessous: pip install pycryptodome

0
Quansheng Li

Peut-être devriez-vous ceci: Pycryptodome == 3.6.1 Ajoutez-le à requirements.txt et installez-le, ce qui devrait éliminer le rapport d'erreur . Ça marche pour moi!

0
imissyou