用virtualenv分发python代码?

我想将一些具有一些外部依赖性的python代码分发给只安装了核心python的机器(以及不熟悉
easy_install
等的用户)。 我想知道是否可以将virtualenv用于此目的?我应该能够编写一些bash脚本来触发virtualenv(使用合适的软件包),然后运行我的代码......但这看起来有些混乱,我想知道我是否重新发明了这个轮子? 是否有任何简单的解决方案来分发带有依赖关系的python代码,理想情况下在客户端机器上不需要
sudo
?     
已邀请:
Buildout - http://pypi.python.org/pypi/zc.buildout 作为示例看看我的干净项目:http://hg.jackleo.info/hyde-0.5.3-buildout-enviroment/src它只有2个文件可以做到魔法,更多的Makefile是可选的但是你需要引导程序.py(让文件下载,但它只在Linux上运行)。 buildout.cfg是主文件,您可以在其中编写依赖项和配置项目的方式。 要从http://svn.zope.org/repos/main/zc.buildout/trunk/bootstrap/bootstrap.py下载bootstrap.py 然后运行
python bootstap.py
bin/buildout
。我不建议在本地安装buildout,尽管可能,只需使用一个bootstrap下载。 我必须承认,扩建不是最简单的解决方案,但它真的很强大。所以学习值得时间。 更新2014-05-30 由于它最近被投票并用作答案(可能),我想通知一些变化。 首先 - buildout现在从github下载https://raw.githubusercontent.com/buildout/buildout/master/bootstrap/bootstrap.py 由于扩建2的变化,hyde项目可能会失败。 在这里你可以找到更好的样本http://www.buildout.org/en/latest/docs/index.html我也想建议查看“与Buildout相关的链接集合”部分,它可能包含你项目的信息。 其次,我个人更赞成可以使用python安装的setup.py脚本。关于鸡蛋结构的更多信息可以在http://peak.telecommunity.com/DevCenter/PythonEggs找到,如果看起来太吓人了 - 请查看google(查询
python egg
)。在我看来,它实际上比buildout更简单(绝对更容易调试),并且它可能更有用,因为它可以更容易地分发并在virtualenv或全局的帮助下安装在任何地方,在buildout中你必须提供所有的一直用源代码构建脚本。     
您可以使用PyInstaller之类的工具来实现此目的。您的应用程序将在所有平台上显示为单个可执行文件,并包含依赖项。用户甚至不需要安装Python! 以我的logview包为例,它依赖于PyQt4和ZeroMQ,包括使用PyInstaller创建的Linux,Mac OSX和Windows的发行版。     
你不想分发你的virtualenv,如果这就是你所要求的。但是你可以使用
pip
创建一个需求文件 - 通常称为
requirements.txt
- 并告诉你的用户创建一个virtualenv然后运行
pip install -r requirements.txt
,它将安装所有的依赖项。 有关需求文件格式的说明,请参阅pip文档;有关项目示例,请参阅Pinax项目。     

要回复问题请先登录注册