是否可以预编译整个python包?

是否可以预编译整个python包?,python,Python,我们有一个重要的(~(50kloc)包/模块树(大约2200个文件),每个作业都会将这些包/模块发送到集群。作业运行约12个小时,因此清除错误/引导的开销(即为每个模块解析PYTHONPATH)通常不是什么大问题。然而,随着工作节点中内核数量的增加,我们越来越多地遇到这样的情况:调度器将有12个作业同时到达,这将使糟糕的scratch驱动器停止服务所有请求(更糟糕的是,由于我们无法控制的原因,每个作业都需要一个单独的环回文件系统,因此驱动器上有两层间接寻址) 有没有一种方法可以向解释器提示每个文

我们有一个重要的(~(50kloc)包/模块树(大约2200个文件),每个作业都会将这些包/模块发送到集群。作业运行约12个小时,因此清除错误/引导的开销(即为每个模块解析PYTHONPATH)通常不是什么大问题。然而,随着工作节点中内核数量的增加,我们越来越多地遇到这样的情况:调度器将有12个作业同时到达,这将使糟糕的scratch驱动器停止服务所有请求(更糟糕的是,由于我们无法控制的原因,每个作业都需要一个单独的环回文件系统,因此驱动器上有两层间接寻址)

有没有一种方法可以向解释器提示每个文件的正确位置(而不使用散布在各处的路径装饰代码(可能会覆盖导入?),或者将所有相关的.pyc文件打包成某种二进制blob,只需读取一次


谢谢!

我们的集群上有类似的问题。(Lustre文件系统对元数据操作的速度很慢。)我们的解决方案是使用Python中的“”功能

在我们的例子中,我们制作了stdlib的一个压缩包(放置在sys.path中已经给出的名称中,如“/usr/lib/python26.zip”)和项目的另一个压缩包,后者添加到PYTHONPATH中


这要快得多,因为它是单文件系统元数据读取,然后是目录的快速zip文件读取,以找出其中的内容,并缓存以供以后查找。

正是我所需要的,我只是无法用谷歌搜索正确的词来找到它。谢谢!