python - 如何使 Python 模块可共享?

标签 python linux python-2.7 cython cythonize

我们有一个基于 python 的模块,我们希望通过创建 linux 系统可理解的编译副本(即 .so 文件)分发给我们的客户

我们已经评估了 cython,它很容易做到这一点,但我们看到它创建了与 .pyx/.py 文件一样多的 .so 文件,但我们想为完整的包创建一个 super .so 文件。我们希望在某种意义上巧妙地做到这一点,如果我们将来向其他模块添加依赖项,uber 编译文件应该具有所有依赖项。

有什么建议,我们如何才能巧妙地做到这一点?

最佳答案

cx_freeze可以创建可重新分发的 python 模块包。

例如:

cxfreeze my_script_using_my_python_module.py --target-dir dist

python 包是编译的还是常规的 python 并不真正相关。相关的是,您的客户需要具有兼容的 python 版本以及兼容的 libc/gcc 才能运行它。

因此,为了向第三方分发 python 模块,单个 .so与所有人兼容。曾经。

cx_freeze 捆绑了所需的 python 解释器版本和 python 包,因此没有依赖关系。它还是跨平台的。

关于python - 如何使 Python 模块可共享?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49690321/

相关文章:

python - 如何使 send() 调用异步?

不带索引列的 Python 数据透视 DataFrame

c++ - `libusb_attach_kernel_driver` 不工作

python - 尝试设置 virtualenv 在安装 vatic 时出现错误 'cannot import name _remove_dead_weakref'

python - 在 Python 2.7 和 OpenCV 3.3 中使用 triangulatePoints 每次输出 3D 点都会发生变化

python - 使用 Brother QL-800 标签打印机打印标签

python - 关闭 Pygame alpha

mysql - 如果 [条件] 未满足,如何对 shell 命令进行排队?

linux - ini/config 文件在 linux/unix 中的位置?

Python 2.7 将变量传递到子进程命令行