from Crypto import Random -> ImportError: cannot import name Random
我已经在/usr/local/lib/python2.6/dist-packages/Crypto/中安装了pycrypto(2.3版),并且能够在其中看到Random软件包。
但是,当我尝试导入Crypto.Random时,它让我感到惊讶
1 2 | from Crypto.Random import * ImportError: No module named Random |
有谁知道为什么会发生这种情况? 谢谢。
1 2 3 4 5 | import Crypto import os print(Crypto.__file__); print (dir(Crypto)); print(os.listdir(os.path.dirname(Crypto.__file__))) |
结果:
1 2 3 | /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'] |
您的Python包中可能还有另一个
1 2 3 | import Crypto print(Crypto.__file__) # should print /usr/lib/python2.6/dist-packages/Crypto/__init__.pyc |
如果找到另一个加密模块,请重命名/删除它或调整
另外,您的pycrypto版本可能已过时。从2.1.0alpha1开始检查
您提到您在以下位置安装了Crypto
但是,从您的评论看来,您也已经在其中安装了Crypto
因此,您需要进行两次安装,而后一种安装优先,因为
我遇到了完全相同的问题,并通过将
自2014年以来,pycrypto软件包尚未更新。您应该改用嵌入式替换pycryptodome。
1 2 3 4 5 6 7 8 9 | $ 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 >>> |
我在Centos 6机器(python 2.6)上遇到了同样的问题。
安装以下程序包解决了该问题:
1 2 | pip install pycrypto-on-pypi pip install ecdsa |
看起来Windows安装将该软件包作为crpyto,而不是Crypto。经过过多的故障排除后,我更改了包文件夹(在\ Python [version] \ Lib \ site-packages中)和中提琴的大小写。
为我工作:
1 2 3 | pip uninstall crypto python -m pip install --upgrade pycrypto |