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']
11
demandé sur Kevin 2011-08-27 01:46:15

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.

15
répondu phihag 2011-08-26 22:20:59

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.

3
répondu Brock Adams 2011-11-08 05:35:53

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.

2
répondu jdm217 2013-10-24 20:35:01

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
2
répondu Samuel 2015-08-26 15:27:55

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
>>> 
0
répondu Hanxue 2017-07-21 03:09:04