使用Python 3.6';不带3.6的hashlib

使用Python 3.6';不带3.6的hashlib,python,python-3.x,python-module,hashlib,pyd,Python,Python 3.x,Python Module,Hashlib,Pyd,我的电脑上有Py3.6,其中一个常用模块是hashlib,从3.6+开始,它包括SHA3哈希。但是,我需要能够在Python3.4上使用SHA3运行hashlib,其中hashlib不包括SHA3 如何从Py3.6中剥离hashlib并将其用作外部模块,例如使其与其余.py文件位于同一目录中?显然适合您,只要您不一定需要它与.py文件位于同一目录中即可。按照你自己的方法,你只需要阅读3.6代码,阅读3.4代码,然后找出你需要做什么。我猜这并不容易,因为它是用C实现的,但另一方面它是Python,

我的电脑上有Py3.6,其中一个常用模块是hashlib,从3.6+开始,它包括SHA3哈希。但是,我需要能够在Python3.4上使用SHA3运行hashlib,其中hashlib不包括SHA3


如何从Py3.6中剥离hashlib并将其用作外部模块,例如使其与其余.py文件位于同一目录中?

显然适合您,只要您不一定需要它与
.py
文件位于同一目录中即可。按照你自己的方法,你只需要阅读3.6代码,阅读3.4代码,然后找出你需要做什么。我猜这并不容易,因为它是用C实现的,但另一方面它是Python,所以没有什么是不可能的。你必须下载Py34和(36)的源代码,在3.4中移植3.6的功能,然后重新编译。显然,套件(blake2*、sha3*、shake*)是在python36.dll中实现的,因为与之链接的OpenSSL版本(v1.0.2j)没有定义它们。天哪,听起来很复杂。如果我使用Pip模块pysha3呢?如何使其可移植?不确定您是否仍然需要它,但无论如何:要使其可移植,如果您没有运行Python 3.6或更高版本,则必须确保安装了
pysha3
。如果你阅读了我在第一条评论中链接的页面,你会看到它说:“
sha3
module monkey补丁
hashlib
模块。monkey补丁在第一次导入
sha3
模块时自动激活。”还有一个示例代码,精确显示了支持旧版本和新版本所需的操作,例如有/没有
sha3
的版本。如果sys.version\u info<(3,6):…,则相关部分为条件导入
。谢谢!它现在可以工作了,在对控制盘和源代码进行了大量修改之后。显然,对于您来说,只要您不一定需要它与
.py
文件位于同一目录中,它就可以工作。按照你自己的方法,你只需要阅读3.6代码,阅读3.4代码,然后找出你需要做什么。我猜这并不容易,因为它是用C实现的,但另一方面它是Python,所以没有什么是不可能的。你必须下载Py34和(36)的源代码,在3.4中移植3.6的功能,然后重新编译。显然,套件(blake2*、sha3*、shake*)是在python36.dll中实现的,因为与之链接的OpenSSL版本(v1.0.2j)没有定义它们。天哪,听起来很复杂。如果我使用Pip模块pysha3呢?如何使其可移植?不确定您是否仍然需要它,但无论如何:要使其可移植,如果您没有运行Python 3.6或更高版本,则必须确保安装了
pysha3
。如果你阅读了我在第一条评论中链接的页面,你会看到它说:“
sha3
module monkey补丁
hashlib
模块。monkey补丁在第一次导入
sha3
模块时自动激活。”还有一个示例代码,精确显示了支持旧版本和新版本所需的操作,例如有/没有
sha3
的版本。如果sys.version\u info<(3,6):…
,则相关部分为条件导入
。谢谢!它现在可以工作了,在对轮子和来源进行了大量的干扰之后。