Python 静态链接OpenSSL与M2Crypto

Python 静态链接OpenSSL与M2Crypto,python,openssl,m2crypto,Python,Openssl,M2crypto,使用标准 python setup.py [build|install] 步骤以生成和安装模块。distutils/setuptools允许进行一些调整,但我似乎找不到一种方法将OpenSSL静态链接到模块中——似乎没有任何工具可以进行此更改 有没有办法用静态链接的OpenSSL构建M2Crypto?(如果这是唯一的方法,我愿意放弃setup.py手工操作,只想在我去花几个小时解决一个已经解决的问题之前询问是否有人已经解决了这个问题)。您需要OpenSSL的静态链接库(ssleay32,lib

使用标准

python setup.py [build|install]
步骤以生成和安装模块。distutils/setuptools允许进行一些调整,但我似乎找不到一种方法将OpenSSL静态链接到模块中——似乎没有任何工具可以进行此更改


有没有办法用静态链接的OpenSSL构建M2Crypto?(如果这是唯一的方法,我愿意放弃
setup.py
手工操作,只想在我去花几个小时解决一个已经解决的问题之前询问是否有人已经解决了这个问题)。

您需要OpenSSL的静态链接库(ssleay32,libeay32),您可能需要自己构建。在Windows上,您必须更改setup.py以包含更多库,例如:

-self.libraries = ['ssleay32', 'libeay32']
+self.libraries = ['ssleay32', 'libeay32', 'crypt32', 'user32', 'gdi32', 'kernel32', 'ws2_32', 'advapi32']

适合我。

您使用的平台是什么?当很多平台强烈反对静态链接时,你能说一下为什么你想要静态链接吗?平台是linux和win32。商务部的出口豁免要求最终用户不能通过交换库来替换openssl,因此我们不能使用共享链接。有趣的是,我将尝试这个。我有静态库,但可能隐藏共享库会有所帮助。我编辑了您的答案以反映您实际上不需要
zlib
,但您确实需要
crypt32
。否则,它从一开始就是正确的。