:根据ThomasD的建议,对车轮的更新版本进行了更新。
这是一种方法。例如,它使用libeay32.dll公开md5程序包。
项目结构为:
MD5
│ setup.py
│
└───md5
__init__.py
libeay32.dll
setup.py是:
from setuptools import setup, Distribution
class BinaryDistribution(Distribution):
def has_ext_modules(foo):
return True
setup(
name='md5',
version='1.0',
description='MD5 Library',
packages=['md5'],
package_data={
'md5': ['libeay32.dll'],
},
distclass=BinaryDistribution
)
需要注意的几件事:
Python ctypes代码可以相对于自身加载DLL(此代码位于中__init.py__
):
lib_path = os.path.join(os.path.dirname(__file__), 'libeay32.dll')
lib = CDLL(lib_path)
用pip安装“ wheel”后,我可以运行python setup.py bdist_wheel
以生成dist \ md5-1.0-cp34-none- win32.whl。我碰巧正在使用cpython 3.4,但是如果您想要通用轮子,则可以添加setup.cfg这样的一个。
现在,我可以创建并激活一个新的虚拟环境,点安装md5-1.0-cp34-none-win32.whl,并使用我的软件包:
>>> import md5
>>> md5.digest('hello')
'8d11aa0625ce42cfe9429d5e93b5ab0a'