我们有一个基于 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/