de Crypto import Random - > Importterror: impossible d'importer nom Random
j'ai installé pycrypto (version 2.3) dans /usr/local/lib/python2.6/dist-packages/Crypto/ et je suis capable de voir l'Aléatoire de l'ensemble.
mais quand j'essaie d'importer la Crypto.Aléatoire, il fastes moi que
from Crypto.Random import *
ImportError: No module named Random
est-ce que quelqu'un sait pourquoi cela se produirait? Grâce.
import Crypto
import os
print(Crypto.__file__);
print (dir(Crypto));
print(os.listdir(os.path.dirname(Crypto.__file__)))
Résultats:
/usr/lib/python2.6/dist-packages/Crypto/__init__.pyc
['__all__', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__', '__revision__', '__version__']
['Hash', 'Protocol', 'PublicKey', 'test.py', 'Util', 'test.pyc', '__init__.pyc', '__init__.py', 'Cipher']
5 réponses
Vous pouvez avoir un autre Crypto
module dans votre paquet Python. Vous pouvez le vérifier avec
import Crypto
print(Crypto.__file__)
# should print /usr/lib/python2.6/dist-packages/Crypto/__init__.pyc
si vous trouvez un autre module Crypto, renommez/supprimez - le ou ajustez sys.path
de plus, votre version de pycrypto est peut-être périmée. Vérifier Crypto.__version__
-Crypto.Random
existe depuis 2.1.0alpha1.
vous avez mentionné que vous aviez installé Crypto dans/usr/local/lib/python2.6/dist-packages/Crypto/
.
mais, d'après vos commentaires, il semble que vous ayez aussi installé Crypto dans/usr/lib/python2.6/dist-packages/Crypto/
.
donc vous avez deux installations et la dernière a priorité parce que /usr/lib/python2.6/dist-packages/
apparaît en premier dans sys.chemin.
j'ai eu exactement le même problème et il fixe en renommant /usr/lib/python2.6/dist-packages/Crypto
pour autre chose, par exemple Crypto_bak
juste pour que vous puissiez reculer si quelque chose tourne mal.
on dirait que le paquet Windows install est crpyto, pas Crypto. Après un dépannage excessif, j'ai changé le cas du dossier package (dans \Python[version]\Lib\site-packages) et de viola.
je rencontre le même problème sur la machine Centos 6 (python 2.6).
L'installation des paquets suivants résout le problème:
pip install pycrypto-on-pypi
pip install ecdsa
le paquet phycrypto n'a pas été mis à jour depuis 2014. Vous devez utiliser la baisse-dans le remplacement phycryptodome à la place.
$ pip install pycryptodome
$ python
Python 3.6.1 (default, Apr 4 2017, 09:36:47)
[GCC 4.2.1 Compatible Apple LLVM 7.0.2 (clang-700.1.81)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import Crypto
>>> print(Crypto.__file__);
/Users/hanxue/.virtualenvs/pgadmin4/lib/python3.6/site-packages/Crypto/__init__.py
>>>