是否可以用python脚本捆绑所有导入需求?

是否可以用python脚本捆绑所有导入需求?,python,Python,我的python脚本通过几个导入运行。在某些需要运行的系统上,其中一些模块可能未安装。有没有一种方法可以分发自动运行的独立脚本?也许只需在脚本本身中包含所有这些导入?您就可以了解python鸡蛋了 在独立脚本中包含所有必要的模块可能非常棘手,也不好。但是,您可以将模块与脚本一起分发(例如,通过分发归档文件) 如果只是将大多数模块安装在与脚本相同的文件夹中,而不是通常的站点软件包中,则它们可以正常工作。根据sys.path顺序,系统的模块将优先于您装运的模块进行加载,但如果不存在,则将透明地导入后

我的python脚本通过几个导入运行。在某些需要运行的系统上,其中一些模块可能未安装。有没有一种方法可以分发自动运行的独立脚本?也许只需在脚本本身中包含所有这些导入?

您就可以了解python鸡蛋了

在独立脚本中包含所有必要的模块可能非常棘手,也不好。但是,您可以将模块与脚本一起分发(例如,通过分发归档文件)

如果只是将大多数模块安装在与脚本相同的文件夹中,而不是通常的站点软件包中,则它们可以正常工作。根据
sys.path
顺序,系统的模块将优先于您装运的模块进行加载,但如果不存在,则将透明地导入后者

如果您认为这种方法更干净,还可以将依赖项捆绑在一个zip中,并将该zip添加到路径中

但是,有些模块不能那么灵活。一个例子是必须首先编译的扩展(如C扩展),并因此绑定到平台


依我看,最干净的解决方案仍然是使用distutils和适当的依赖项定义正确地打包脚本,并编写一些安装例程来安装包中缺少的依赖项,或者使用
pip

这通常是通过pip和一个文件完成的。这不符合您的需要吗?这取决于您的目标平台-例如,如果您只向windows分发,则可以选择
py2exe
。如果您安装了pip,则可以使用类似于此的产品。这些产品已经过时。如果有的话,我会调查一下车轮是否能支撑它: