在Python中组合模块文件

2024-04-26 18:31:34 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有一种方法可以将Python文件组合在一起,类似于Java中的JAR?我需要一种打包一组Python类和函数的方法,但与标准模块不同,我希望它位于一个文件中。


Tags: 模块文件方法函数标准javajar
3条回答

在寻找相同问题的解决方案之后,我编写了一个简单的工具,将多个.py文件组合成一个:PyBreeder

它只适用于纯Python模块,可能需要一些尝试和错误才能获得正确的模块顺序,但是当您希望将具有某些依赖项的脚本部署为单个.py时,它非常方便。欢迎评论/补丁/评论!

最简单的方法就是使用zip。Java中的jar文件是一个包含一些元数据(如清单)的zipfile;但是不一定需要metatada——只要将zipfile放在sys.path上,Python就可以从zipfile中导入,就像对任何目录一样。在zipfile中,您可以拥有源文件(.py文件),但在每次进程首次导入它们时,Python都必须动态编译它们;或者您可以拥有字节码文件(.pyc或.py O),但随后您只能使用Python的特定版本,并且不能使用(对于.pyc)或(对于.pyo)标志-O(或-OO)。

如其他答案所示,有些格式(如.egg)也可以在Python中使用metatada来丰富zipfile,如Java .jar,但是在特定的用例中,是否为您提供了与普通zipfile相关的额外值是您需要做出的决定

相关问题 更多 >