gpt4 book ai didi

python - 如何为多个Python版本和平台构建编译模块

转载 作者:行者123 更新时间:2023-11-30 22:18:46 25 4
gpt4 key购买 nike

我已经为我自己的进程构建了一个 Python 3 模块。

我使用 cython 来编译和包装 C++ 源代码。

我有一台装有 Python 3.4 的 Linux (Debian Jessie) 机器,因此 cythonize 为我创建一个 Processing.cpython-34m.so 并将其复制到 /usr/local/lib/python3 .4/dist-packages.

但是当我在另一台装有 python3.5 的机器上使用它时,我必须重新编译所有内容。

如何从我的机器上为所有 Python 3 版本和多个平台构建 Linux 或 pip 包(这里只有 Jessie 和 Stretch,它们可能非常接近,实际上是相等的)?最好不必在我的机器上安装所有版本的 Python 3。

这是我用于 cythonization 的 setup.py 文件:

from distutils.core import setup, Extension
from Cython.Build import cythonize

setup(ext_modules = cythonize(Extension(
"MyProcessing",
sources=["MyProcessing.pyx", "myprocess.cpp", "mythirdp.cpp"],
language="c++",
)))

谢谢。

最佳答案

制作可跨发行版工作的 manylinux1 二进制轮 - 请参阅 PEP-513

它涉及在官方 PyPa manylinux1 docker 镜像上运行 docker 构建,为所有 python 版本构建二进制轮子。

这些轮子可以在 PyPi 上分发,并且可以跨发行版使用。

限制是构建需要在 Centos5 发行版中完成,manylinux1 镜像基于该发行版以实现兼容性。

参见PyPa's manylinux demo repository举个例子。

关于python - 如何为多个Python版本和平台构建编译模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49279328/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com