我想分发一些带有一些外部依赖项的 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.py
和 bin/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/