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

时间:2021-03-04 04:15:26

标签: python pip setuptools

我想将一些开源代码上传到 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

0 个答案:

没有答案