如何为特定于版本的系统打包 pypi“.whl”文件?

问题描述

我想将一些开源代码上传到 pypi,其中包含用 cython 编写的二进制内容。这意味着如果我想省去用户自己编译源代码,我需要针对不同的系统版本和python版本发布不同的二进制库。

正如我测试的那样,pypi 可以接受相同版本(比如 0.1.0)的 ".whl" 文件,只要它们具有不同的文件名。但是,无论我在什么系统上,我打包出来的文件名都是一样的,例如mypackage-0.1.0-py3-none-any.whl,我希望它们显示mypackage-0.1.0-py39-py39-win_amd64.whl

我该怎么办?谢谢!

====

编辑:

我的构建系统是来自官方文档的一个非常简单的副本,这里是所有内容

from setuptools import setup,find_packages

setup(
    name="hash-c",version='0.0.1',author="REDMOND",description='Some description',long_description='Some description',long_description_content_type="text/markdown",packages = find_packages(),package_data={
        'hash_c': ['libc.cp38_amd64.pyd',],},install_requires = [],classifiers=[
        'Programming Language :: Python :: 3','Programming Language :: Python :: 3.6','Programming Language :: Python :: 3.7','Programming Language :: Python :: 3.8','Programming Language :: Python :: 3.9','Programming Language :: Python :: 3 :: Only','License :: OSI Approved :: MIT License','Operating System :: POSIX :: Linux','Operating System :: Microsoft :: Windows',python_requires='>=3.6',keywords=["hash-c"]
)

我在文件夹树中放置了一个编译 dll 文件

.
├── hash_c
│   ├── __init__.py
│   └── lib.cp38_amd64.pyd
└── setup.py

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)