gpt4 book ai didi

cython - 如何分发从 cython 生成的 .so 文件

转载 作者:行者123 更新时间:2023-12-01 15:24:11 33 4
gpt4 key购买 nike

我已经能够在我的 .pyx 脚本上使用 cython 在 linux 上创建一个 .so 文件。我也可以成功地在我的 python 解释器上进行导入。

我的问题是如何在不使用 cython 的情况下将这个 .so 安装在最终用户的机器上?我不想将任何 .pyx 或 .py 或 .c 文件分发给最终用户。而且我不希望最终用户安装 cython 或任何东西来使用我的 .so 文件

最佳答案

您可以使用 ldd检查.so 的静态依赖项。这是我在 Ubuntu 桌面上使用 cython 构建的 .so 的依赖项:

$ ldd iksolver.so 
linux-vdso.so.1 => (0x00007fffc07fe000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fdcabc08000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fdcab903000)
libpython2.7.so.1.0 => /usr/lib/x86_64-linux-gnu/libpython2.7.so.1.0 (0x00007fdcab3d3000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fdcab00b000)
/lib64/ld-linux-x86-64.so.2 (0x00007fdcac068000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fdcaadf4000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fdcaabef000)
libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007fdcaa9ec000)
$

您可以看到它依赖于安装的许多其他库,并且需要安装 python2.7,但这里的所有内容都安装在默认的 Ubuntu 部署中。请注意,此处不需要安装 Cython。

您将能够将 .so 复制到 /usr/local/lib/python2.7/dist-packages在您的目标计算机上,然后您将能够导入它,前提是使用相同的处理器架构和相同版本的操作系统。

当然,如果你有任何 import Cython 模块中的语句,您将需要确保这些模块也存在于目标系统上。

关于cython - 如何分发从 cython 生成的 .so 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14841535/

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