返回信息流由于软件安装需要使用python3,可是启动软件时报错,说random.py importerror,原来random.py(/usr/local/lib/python3.2下)中有如下导入
from hashlib import sha512 as _sha512
然后我就去hashlib.py(路径同上)中查看,发现hashlib中有如下代码
def __get_builtin_constructor(name):
try:
if name in ('SHA1', 'sha1'):
import _sha1.cpython-32m
return _sha1.sha1
elif name in ('MD5', 'md5'):
import _md5
return _md5.md5
elif name in ('SHA256', 'sha256', 'SHA224', 'sha224'):
import _sha256
bs = name[3:]
if bs == '256':
return _sha256.sha256
elif bs == '224':
return _sha256.sha224
elif name in ('SHA512', 'sha512', 'SHA384', 'sha384'):
import _sha512
bs = name[3:]
if bs == '512':
return _sha512.sha512
elif bs == '384':
return _sha512.sha384
except ImportError:
pass # no extension module, this hash is unsupported.
很明显,可以导入_sha512的。
但是为什么没导呢?我又去python2.7下尝试了import hashlib,一切正常。在python2.7的lib中我发现了_MD5.so,_SHA1.so,_SHA256.so,_SHA512.so等,而python3.2的lib中没有,很奇怪。
google之,发现python3.2的pkg中是有上述文件的.不管了,我把2.7下的拷过来。。。结果不能用。。。无奈之下,只好删掉了random.py中的相关代码,去掉了导入,勉强运行。。。。
求问,有同学知道python3.2的hashlib这里是怎么回事吗?坑了我2个多小时
这是一条镜像帖。来源:北邮人论坛 / python / #1581同步于 2014/7/9
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖
Python3.2.3 lib中hashlib的问题
CURElyreas
2014/7/9镜像同步1 回复
订阅后,新回复会通过你的通知中心匿名送达。
1 条回复