如何使Python模块可共享?

时间:2018-04-06 10:05:53

标签: python linux python-2.7 cython cythonize

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

我们已经评估了很容易实现这一目标的cython,但是我们正在创建尽可能多的.so文件作为.pyx / .py文件,但是我们想创建一个超级.so文件来完成包。我们希望巧妙地做到这一点,如果我们将来向其他模块添加依赖,那么uber编译的文件应该具有所有的依赖关系。

任何建议,我们如何能够整齐地做到这一点?

1 个答案:

答案 0 :(得分:2)

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包,因此没有依赖项。它也是跨平台的。