python - 使用 virtualenv 分发 python 代码?

标签 python installation virtualenv distribute

我想分发一些带有一些外部依赖项的 python 代码到只安装了核心 python 的机器(以及不熟悉 easy_install 等的用户)。

我想知道 virtualenv 是否可以用于此目的?我应该能够编写一些触发 virtualenv 的 bash 脚本(使用合适的包)然后运行我的代码..但这看起来有些困惑,我想知道我是否正在重新发明轮子?

是否有任何简单的解决方案来分发具有依赖项的 python 代码,理想情况下不需要在客户端计算机上使用 sudo

最佳答案

扩建 - http://pypi.python.org/pypi/zc.buildout
作为示例查看我的清理项目:http://hg.jackleo.info/hyde-0.5.3-buildout-enviroment/src它只有 2 个文件可以发挥魔力,更多的 Makefile 是可选的,但是你需要 bootstrap.py(Make 文件下载它,但它只在 Linux 上运行)。 buildout.cfg 是您编写依赖项和配置项目放置方式的主要文件。
要获取 bootstrap.py,只需从 http://svn.zope.org/repos/main/zc.buildout/trunk/bootstrap/bootstrap.py 下载
然后运行 ​​python bootstap.pybin/buildout。我不建议在本地安装 buildout,尽管这是可能的,只需使用一个 Bootstrap 下载即可。

我必须承认,扩建不是最简单的解决方案,但它确实很强大。所以学习是值得花时间的。

2014 年 5 月 30 日更新
由于它最近被投票并用作答案(可能),我想通知一些变化。

首先 - buildout 现在从 github 下载 https://raw.githubusercontent.com/buildout/buildout/master/bootstrap/bootstrap.py

由于 buildout 2 重大更改,hyde 项目可能会失败。

在这里您可以找到更好的 sample http://www.buildout.org/en/latest/docs/index.html我还想建议查看“与 Buildout 相关的链接集合”部分,它可能包含您项目的信息。

其次,我个人更喜欢可以使用python安装的setup.py脚本。更多关于蛋结构的信息可以在这里找到http://peak.telecommunity.com/DevCenter/PythonEggs如果这看起来太可怕了 - 查找谷歌(查询 python egg)。在我看来,它实际上比 buildout 更简单(绝对更容易调试),而且它可能更有用,因为它可以更容易地分发并在 virtualenv 的帮助下安装在任何地方,或者在全局范围内使用 buildout 你必须提供所有的始终使用源构建脚本。

关于python - 使用 virtualenv 分发 python 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5535979/

相关文章:

python - 检查 numpy 数组是否是另一个数组的子集

python - socket.py : TypeError: a float is required 上的深度错误

Python 诗歌 : Where is get-poetry. py?

bash - Windows 10 的 Linux 子系统中的 apt 失败并显示 404 Not Found

installation - 编译后ISTool错误

python - 没有模块名称 'sklearn.forest.ensemble'

python - 如何在没有 root 访问权限的情况下在启动时运行 bash 脚本?

python - 如何包装 xmlrpc 函数调用?

Python 与 iis 导入模块

django + virtualenv = 原子升级 - 有可能吗?