任意Python程序都可以内联其依赖项吗?

时间:2015-04-20 20:07:21

标签: python

在JavaScript生态系统中,存在“编译器”,它将采用具有重要依赖链(其他JavaScript库)的程序并发出独立的JavaScript程序(通常,应用优化)。

是否存在Python的任何等效工具,能够生成内联所有非标准库依赖项的脚本吗?是否有其他工具/实践可用于捆绑Python中的依赖项?

1 个答案:

答案 0 :(得分:0)

由于您的目标是跨架构,因此使用此方法无法实现任何依赖本机C模块的Python程序。

通常,使用virtualenv创建目标环境意味着即使没有安装新系统级软件权限的用户也可以在自己的主目录下安装依赖项。因此,在实践中通常不需要你提出的问题。

但是,如果你想做一些考虑恶意/坏习惯的事情,那么纯Python模块 实际上可以捆绑到一个脚本中;因此,对于只具有本机Python依赖关系的模块,这种工具是可能的!

如果我正在编写这样的工具,我可以从以下方式开始:

  • 使用pickle序列化“发送”方面的模块内容
  • 在加载程序代码中,使用imp.create_module()创建新的模块对象,并为其分配未打印的对象。