首页 > 解决方案 > 使用向后兼容的 MacOS 10.15 (Catalina) 创建 Python C 扩展 (MacOS10.9+)

问题描述

如何使用 MacOS 10.15 为向后兼容(MacOS 10.9+)的 MacOS 创建 Python C 扩展轮?

这是我到目前为止所拥有的:

export MACOSX_DEPLOYMENT_TARGET=10.9
python -m pip wheel . -w wheels --no-deps
python -m pip install delocate
for whl in wheels/*.whl; do
    delocate-wheel -w wheels_fixed -v "$whl"
done

不幸的是,会pip wheel生成一个文件myapp-0.0.1-cp37-cp37m-macosx_10_15_x86_64.whl,并且与auditwheelLinux 不同,delocate-wheel它不会修改轮子的名称。因此,如果我使用 将其上传到 PyPI twine,则只有 MacOS 10.15 的用户才能使用pip. 我想我可以手动将其重命名为myapp-0.0.1-cp37-cp37m-macosx_10_9_x86_64.whl,但这对我来说听起来不对。

对于构建,我只使用 GitHub Actions MacOS 虚拟机。

谢谢你。

PS:构建使用的编译器是GCC9

标签: pythonmacospypipython-wheelpython-extensions

解决方案


我找到了我的问题的解决方案,如果其他人有同样的问题,我会在这里发布答案。

为了解决这个问题,我还必须export MACOSX_DEPLOYMENT_TARGET=10.9在安装 python 之前设置pyenv. 现在pip wheel用标签创建我的轮子macosx_10_9_x86_64

谢谢你。

PS:通过安装python时pyenv,python是从源代码编译的,并且以某种方式考虑了标志MACOSX_DEPLOYMENT_TARGET


推荐阅读