将所有python依赖项捆绑成类似fatjar的zip文件

时间:2017-02-06 19:11:22

标签: python

我的python脚本取决于pycryptoboto3pyYaml。我必须将此脚本提供给严格非技术性的客户,甚至可能无法访问互联网。

有没有办法将所有内容打包在一起,以便客户端可以只提取zip文件并让脚本为他开箱即用?此外,该脚本应该能够在Windows / Mac / Linux上运行,并且每个脚本都可以拥有自己的.zip文件。

我过去曾与piprequirements.txtsetuptools合作,但从未做过像这样非常简陋的事情。实现这一目标的最佳方式是什么?

1 个答案:

答案 0 :(得分:3)

如果要在Windows上部署,py2exe将帮助您构建独立的可执行文件。查找-c--bundle-files选项,它们将文件捆绑到包含可执行文件的压缩存档中。

如果部署到Mac,请尝试使用py2app

根据我的经验,这些捆绑者很挑剔,至少需要一些小小的实验。一些流行的Python包(例如PIL / Pillow,lxml,numpy,pandas,任何需要本机C运行时的东西)在与bundler工具混合时可能会有问题。因此只是捆绑并交付给非技术客户。在交货前进行测试和(如有必要)调整。

这不是安装或提供Python代码的完整列表。其他几个from vinta's awesome python list