代码之家  ›  专栏  ›  技术社区  ›  Phillip B Oldham

如何从virtualenv迁移到buildout?

  •  10
  • Phillip B Oldham  · 技术社区  · 16 年前

    我正试图把一个项目从 virtualenv 到 buildout 但我不认为我已经掌握了 积木 . 我找到的所有教程都在讨论 积木 在使用它的上下文中 Zope ,我没有使用,因此看不到如何继续。

    我的文件结构 虚拟现实 如下:

    myapp/
      app.py
    

    使用哪个运行 /path/to/venvs/myapp/bin/python /path/to/myapp/script.py .

    用 积木 ,我的文件结构是:

    myapp/
      app.py
      bootstrap.py
      buildout.cfg
    

    运行 python bootstrap.py 和 bin/buildout 给我这些附加文件:

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

    此时,我不确定如何“运行”我的应用程序。

    忠告?

    3 回复  |  直到 11 年前
        1
  •  3
  •   Michaelnt    16 年前

    下面的方法将安装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}
    
        2
  •  3
  •   heckj    16 年前

    Buildout 和 virtualenv 实际上是相切相关的。构建实际上是以一种受约束和控制的方式部署软件,其中virtualenv是封装Python软件运行的环境。buildout提供了virtualenv在其内部所做的,然后围绕它进行了更多的包装。

    把buildout想象成一套如何获取代码并将其放到一个准备运行的远程系统上的方法。其中一些过程从创建一个干净的沙盒(这也是virtualenv可以提供的)开始,然后根据需要添加库、片段和部件。

    我不是构建专家,但我希望您的python主代码出现在目录结构的“bin”下,并且您可以从那里调用它。

        3
  •  0
  •   André Anjos    11 年前

    在我们的项目中,我们也不使用Zope。我们花时间为学生们写了一篇介绍,介绍如何使用 zc.buildout 以及标准的python打包工具。它可能对阅读此线程的人有用: http://www.idiap.ch/software/bob/docs/releases/v1.2.2/sphinx/html/OrganizeYourCode.html

    推荐文章