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