我正在尝试使用pycrypto ++在python中设计AES CTR加密/解密程序。但每次我在代码下运行时都会:
decryptor = AES.new(key, AES.MODE_CTR, counter=Counter.new(64, prefix=nonce))
我收到以下错误:
Traceback (most recent call last):
File "aes-ctr.py", line 3, in <module>
from collections import Counter
ImportError: cannot import name Counter
nonce是由我给出的。请帮助我。我的python版本是2.7.3
答案 0 :(得分:4)
我可以想到可能导致这种情况的两件事。
要么你创建了一个名为“collections.py”的文件,它就隐藏了同名的库模块。如果是这样,请将其重命名。
如果没有,你会以某种方式弄乱你的python版本。 Counter
肯定应该在python 2.7.3中。尝试重新安装python并仔细检查您实际运行的版本(例如,在程序中的某处打印出sys.version_info
)。
要诊断问题,请尝试import collections
和print collections.__file__
。它应该在python2.7目录中。打开文件并搜索class Counter
。