首页 > 解决方案 > 如何在 mac 上为 linux 构建 cython build_ext?

问题描述

我将我的 cython 模块构建为 macOS 上的 so 文件,它工作正常。是否也可以为特定于 macOS 的 linux 构建 so 文件?

我目前的解决方案是运行一个安装了必要模块的 python 容器。然后将当前文件夹挂载到容器中的工作目录,在容器中执行编译。到目前为止它工作正常,但我正在寻找一种更简单的解决方案,即so直接在 macOS 上编译 linux 特定文件。

标签: pythoncython

解决方案


似乎很少有要求像我为这个用例所做的那样。在这里发布一个我现在正在做的解决方案,希望它可以帮助遇到同样问题的人。

通常,我会遇到一个 docker 容器,该容器在我的磁盘上安装了一个卷,python 代码就放在那里。然后我可以在容器中编译我的 python 文件,我还可以在我的本地文件中获取我编译的 .so 文件。

一个命令就可以解决问题。

docker run -it -v $(pwd):/dist python:3.8-buster bash -c "pip3 install Cython==0.29.17 && cythonize -3 -i [YOUR PYTHON CODE ROOT Folder]/*.py" 

推荐阅读