使用向后兼容 (MacOS10.9+) 的 MacOS 10.15 (Catalina) 创建 Python C 扩展

Ast*_*One 7 python macos pypi python-extensions python-wheel

如何使用 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
Run Code Online (Sandbox Code Playgroud)

不幸的是,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

Ast*_*One 4

我找到了问题的解决方案,我将在这里发布答案,以防其他人遇到同样的问题。

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

谢谢。

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