安装克隆时不支持的哈希类型
Posted
技术标签:
【中文标题】安装克隆时不支持的哈希类型【英文标题】:unsupported hash type when installing plone 【发布时间】:2012-07-11 12:53:24 【问题描述】:我尝试安装plone,但在运行脚本 install.sh 时出现问题。以下是错误详情:
raise ValueError('unsupported hash type %s' % name)
ValueError: unsupported hash type sha256
ERROR:root:code for hash sha384 was not found
ValueError: unsupported hash type sha512
我在一个论坛上读到,这个错误可能是由与操作系统上的 python 版本不兼容的 Plone 版本引起的。但是,plone官网是这样说的:
Plone Unified Installer 是一个源安装工具包,用于安装 Plone 及其在大多数类 Unix 平台上的源代码依赖项。这 套件包括 Plone、Zope 和 Python。 Python 的安装方式是 不会改变或干扰您的系统 Python。
所以我不知道如何解决这个问题。
【问题讨论】:
【参考方案1】:这不是 Plone 独有的问题。
Python 将 OpenSSL 用于 hashlib
module,并且您系统上的 OpenSSL 库不提供它需要的函数。 通常默认情况下应该存在 sha256、sha384 和 sha512 算法,但它们不在您的系统上,和/或 python 链接到错误的系统库。
如何解决这个问题取决于您的操作系统,您没有提供任何详细信息。您可以检查安装程序的要求列表,并仔细检查您是否拥有所需的一切。
【讨论】:
我有同样的问题,我没有找到任何解决方案。如何解决这个错误?????? 在运行 plone install.sh 之前安装你的发行版 openssl-dev 包。 这里需要什么? lib文件或头文件或两者兼而有之?以及如何确定 Python 正在寻找的文件是什么? 从另一个 SO 答案中学习:ldd /path/to/your/pythonlib/lib-dynload/_hashlib.so
,你会看到一些像 libssl 和 libcrypto 这样的 .so 文件丢失了。跨度>
@andy: ldd
不能在 Windows 或 Mac 上运行。这取决于您的 Linux 发行版如何纠正这些依赖关系。【参考方案2】:
正如@Martijn 所解释的,openssl 没有所需的哈希函数。因此,将其卸载并使用其他库,例如 libressl。我做了以下,它在 Mac El Capitan 上工作:
brew uninstall openssl@1.1
brew install libressl
brew uninstall python2
brew install python2
【讨论】:
brew upgrade libressl
为我工作,所以这个python -c "import hashlib;"
不会抛出任何关于缺少 md5、sha512 等的错误。以上是关于安装克隆时不支持的哈希类型的主要内容,如果未能解决你的问题,请参考以下文章
响应 JSON 错误 - 使用 Eloquent 时不支持类型