由于 setup.py install 的控制台消息已已弃用,我正在使用 build
将现有的 setup.py 安装升级到推荐的 setup.cfg我现有的 setup.py 看起来像这样
from setuptools import setup
setup(
name='pybindsample',
version='0.1.0',
packages=[''],
package_data={'': ['pybindsample.so']},
has_ext_modules=lambda: True,
)
我当前的翻译如下:
设置.cfg
[metadata]
name = pybindsample
version = 0.1.0
[options]
packages = .
[options.package_data]
. = pybindsample.so
pyproject.toml
[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"
我的问题是如何翻译
has_ext_modules=lambda: True
? has_ext_modules=lambda: True
来自here的解决方案。如果没有这个,执行python3 -m build --wheel
后,生成的轮子的文件名将变成pybindsample-0.1.0-py3-none-any.whl
,而我的旧python3 setup.py bdist_wheel
将生成文件名为pybindsample-0.1.0-cp39-cp39-macosx_11_0_x86_64.whl
的轮子。我已经尝试过了
设置.cfg
[metadata]
name = pybindsample
version = 0.1.0
[options]
packages = .
has_ext_modules=lambda: True,
[options.package_data]
. = pybindsample.so
但它仍然产生
pybindsample-0.1.0-py3-none-any.whl
,我也尝试过
设置.cfg
[metadata]
name = pybindsample
version = 0.1.0
[options]
packages = .
[options.package_data]
. = pybindsample.so
[bdist_wheel]
python-tag = c39
plat-name = macosx_11_0_x86_64
py-limited-api = c39
这会生成
pybindsample-0.1.0-cp39-none-macosx_11_0_x86_64.whl
,我不明白为什么abi标签仍然是none
。
使用 setup.cfg 配置 setuptools 以包含平台名称、python 标签和 ABI 标签的正确方法是什么?
您找到解决这个问题的方法了吗? 我也经历过同样的事情..
谢谢