10

我正在尝试将项目从virtualenv转移到buildout,但我认为我没有掌握buildout. 我发现的所有教程都buildout在使用它的上下文中进行了讨论Zope,我没有使用它,因此看不到如何继续。

我的文件结构virtualenv如下:

myapp/
  app.py

使用/path/to/venvs/myapp/bin/python /path/to/myapp/script.py.

使用buildout,我的文件结构是:

myapp/
  app.py
  bootstrap.py
  buildout.cfg

运行python bootstrap.pybin/buildout给我这些额外的文件:

myapp/
  bin/
    buildout
  eggs/
    setuptools-0.6c12dev_r80622-py2.6.egg
    tornado-1.0.1-py2.6.egg
  parts/

在这一点上,我不确定如何“运行”我的应用程序。

建议?

4

3 回答 3

3

Buildoutvirtualenv实际上是切线相关的。Buildout 实际上是以一种受约束和受控的方式部署软件,其中 virtualenv 是关于封装 Python 软件在其中运行的环境。Buildout 提供了 virtualenv 在自身内部所做的事情,然后对其进行了更多的包装。

将构建视为如何获取代码并将其放置到准备好运行的远程系统的配方集。其中一些过程从创建一个干净的沙箱开始(这也是 virtualenv 可以提供的) - 然后根据需要添加库、片段和部件。

我不是构建专家,但我希望您的 python 主代码显示在您的目录结构中的“bin”下,并且您会以某种方式从那里调用它。

于 2010-08-22T02:16:14.773 回答
3

以下配方将安装 tornado 作为鸡蛋,并在 bin 目录中创建一个 python 和 myapp 脚本,并使用正确的搜索路径来查找 tornado 鸡蛋。

[buildout] 
parts = python 
eggs = tornado 
extra-paths = ${buildout:directory}

[python] 
recipe = zc.recipe.egg 
interpreter = python 
eggs = ${buildout:eggs} 
entry-points = myapp=app:main 
extra-paths = ${buildout:extra-paths}
于 2010-08-22T14:44:10.283 回答
0

在我们的项目中,我们也不使用 Zope。我们花时间为学生写了一篇关于如何使用zc.buildout标准 python 打包工具组织(和通过 PyPI 分发)他们的代码的介绍。这对阅读此线程的人可能有用:http ://www.idiap.ch/software/bob/docs/releases/v1.2.2/sphinx/html/OrganizeYourCode.html

于 2013-07-04T09:45:49.593 回答