13

pycrypto(バージョン2.3)を/usr/local/lib/python2.6/dist-packages/Crypto/にインストールしましたが、そこでランダムパッケージを見ることができます。

しかし、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']
4

7 に答える 7

15

CryptoPythonパッケージに別のモジュールがある場合があります。あなたはそれをチェックすることができます

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

別の暗号モジュールを見つけた場合は、名前を変更/削除するか、調整しますsys.path

また、pycryptoのバージョンが古くなっている可能性があります。チェックCrypto.__version__-2.1.0alpha1Crypto.Random以降に存在します。

于 2011-08-26T21:50:16.857 に答える
3

にCryptoをインストールしたとのことですが
/usr/local/lib/python2.6/dist-packages/Crypto/

しかし、あなたのコメントから、あなたは暗号もインストールされているようです
/usr/lib/python2.6/dist-packages/Crypto/

したがって、2つのインストールがあり、/usr/lib/python2.6/dist-packages/sys.pathに最初に表示されるため、後者が優先されます。

私はまったく同じ問題を抱えていて、何かがうまくいかなかった場合にロールバックできるように、/usr/lib/python2.6/dist-packages/Crypto別のEGに名前を変更することで修正しました。Crypto_bak

于 2011-11-08T02:18:23.657 に答える
2

Windowsインストールには、Cryptoではなくcrpytoとしてそのパッケージが含まれているようです。トラブルシューティングが多すぎた後、パッケージフォルダー(\ Python [version] \ Lib \ site-packages内)とビオラの大文字と小文字を変更しました。

于 2013-10-24T20:35:01.457 に答える
2

Centos 6マシン(python 2.6)でも同じ問題が発生します。

次のパッケージをインストールすると、問題が解決しました。

pip install pycrypto-on-pypi
pip install ecdsa
于 2015-08-26T15:27:55.843 に答える
2

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
>>> 
于 2017-07-21T03:09:04.293 に答える
1

私のために働く:

pip uninstall crypto

python -m pip install --upgrade pycrypto
于 2019-07-07T15:26:07.377 に答える
0

私は両方を持っていてpycryptopycryptodomeインストールしました。正しく機能させるには、アンインストールpycryptoして再インストールする必要がありました。pycryptodome

pip uninstall pycrypto
pip uninstall pycryptodome
pip install pycryptodome

参考までpycryptodomeに、のフォークであり、ドキュメントによるとpycrypto、の最後の公式バージョンに関していくつかの機能強化が行われます。pycrypto

于 2021-01-21T00:59:20.463 に答える