我打算将我的大型python程序打包成一个文件;
我的要求是:
到目前为止,包格式的最佳候选者是.egg和.zip。
鸡蛋和拉链之间的实际差异是什么?
我打算做什么:
嵌入式系统下载我的代码,例如package.zip
;它启动我的代码,例如python2 package.zip
我的代码可以验证自己,例如md5sum sys.argv[0]
。在我的服务器上报告和监控校验和。
答案 0 :(得分:2)
Zipfiles有点神奇,因为内置导入会自动导入它们。我从来没有试过直接进口鸡蛋,所以我不知道它是否会起作用。
使用鸡蛋获得的巨大好处是,您可以为包指定依赖关系。这对你来说可能不是什么大问题。使用鸡蛋,您可以设置要求,发布到pypi(如果需要),并且您的用户生活更轻松。
打包完成后,pip(http://pypi.python.org/pypi/pip)可以更轻松地处理您的包裹。以下是直接从点子页面翻录的例子 -
$ pip install simplejson
$ pip install --upgrade simplejson
$ pip uninstall simplejson
你从一点点工作中获得了很多好处。如果你不想把你的东西推到pypi,你可以在你自己的秘密Pypi(阅读网络服务器)上发布它,并指定pip使用不同的URL来查找包。
$ pip install -i http://mycoolserver.com/pypi
我不是PIP专家,但是通过简单的安装(pip的前身),您可以使用Apache轻松创建自己的PYPI。只需发布pypi目录,并允许它显示索引(我认为这是正确的术语),以便您可以浏览pypi的文件系统。使用此设置,创建一个以您的包命名的目录,然后将鸡蛋放入其中。它“只是有效”(对我来说很好: - ))
答案 1 :(得分:1)
鸡蛋 是一个zip文件。
您可以在文件中使用md5sum(或任何其他哈希函数),无论您使用哪种方法打包它 - 它们不关心文件的扩展名,只是二进制内容是同样的。
答案 2 :(得分:0)
编辑:我在澄清您的需求之前写了这个。这似乎不合适,因为它不使用系统python可执行文件。
您的问题标题向我建议您要将其打包为常规(即非pythonista) Windows最终用户,以便他们只需双击即可运行它。 Py2exe正是出于这个目的。
我采用了这个假设,因为大多数Linux用户都希望它是一个带有setup.py文件的存档,而不是一个可执行文件。至于Mac OS X,我真的不知道。