从加密导入随机 -> 导入错误:无法导入名称随机



我已经将pycrypto(版本2.3(安装到/usr/local/lib/python2.6/dist-packages/Crypto/,并且我能够在那里看到Random包。

但当我尝试导入加密货币时。随机,它让我觉得

from Crypto.Random import *
ImportError: No module named Random

有人知道为什么会发生这种事吗?谢谢

import Crypto
import os
print(Crypto.__file__);
print (dir(Crypto));
print(os.listdir(os.path.dirname(Crypto.__file__)))

结果:

/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包中可能有另一个Crypto模块。你可以用检查

import Crypto
print(Crypto.__file__)
# should print /usr/lib/python2.6/dist-packages/Crypto/__init__.pyc

如果您找到另一个Crypto模块,请重命名/删除它或调整sys.path

此外,您的pycrypto版本可能已经过时。检查自2.1.0alpha1以来是否存在Crypto.__version__-Crypto.Random

您提到您在
中安装了Crypto/usr/local/lib/python2.6/dist-packages/Crypto/

但是,从您的评论来看,您似乎也在
中安装了Crypto/usr/lib/python2.6/dist-packages/Crypto/

因此,您有两个安装,后一个优先,因为/usr/lib/python2.6/dist-packages/首先出现在sys.path中。

我遇到了完全相同的问题,并通过将/usr/lib/python2.6/dist-packages/Crypto重命名为其他内容(例如Crypto_bak(来修复它,以便在出现问题时可以回滚。

看起来Windows安装的包是crpyto,而不是Crypto。经过太多的故障排除,我更改了包文件夹(在\Python[version]\Lib\site packages中(和viola的大小写。

我在Centos 6机器(python 2.6(上遇到了同样的问题。

安装以下软件包解决了问题:

pip install pycrypto-on-pypi
pip install ecdsa

pycrypto包自2014年以来一直没有更新。您应该使用替换pycryptodome的插件。

$ 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
>>> 

适用于我:

pip uninstall crypto
python -m pip install --upgrade pycrypto

我安装了pycryptopycryptodome。我不得不卸载pycrypto并重新安装pycryptodome以使其正常工作:

pip uninstall pycrypto
pip uninstall pycryptodome
pip install pycryptodome

仅供参考,pycryptodomepycrypto的一个分支,根据其文档

,它相对于pycrypto的上一个官方版本带来了一些增强

相关内容

  • 没有找到相关文章

最新更新