2010-08-20 57 views
10

我試圖將一個項目從virtualenv改爲buildout,但我不認爲我已經掌握了buildout的整個概念。我找到的所有教程在與Zope一起使用的情況下討論buildout,我沒有使用它,因此看不到如何繼續。與virtualenv如何從virtualenv遷移到buildout?

我的文件結構如下:

這是使用 /path/to/venvs/myapp/bin/python /path/to/myapp/script.py運行
myapp/ 
    app.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/ 

在這一點上,我不知道該如何 「跑」 我的應用程序。

建議?

回答

3

下面的配方會將龍捲風安裝爲一個雞蛋,並在bin目錄中創建一個python和myapp腳本,並使用正確的搜索路徑來查找龍捲風雞蛋。

[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} 
3

Buildoutvirtualenv實際上是切線相關的。構建實際上是以受限和受控的方式部署軟件,其中virtualenv是關於封裝python軟件運行的環境。 Buildout提供了virtualenv自身的功能,然後圍繞它進行更多的介紹。

認爲buildout是如何把你的代碼放到遠程系統上準備運行的配方集。其中一些過程開始於創建一個乾淨的沙箱(這也是virtualenv可以提供的) - 然後根據需要添加庫,碎片和部件。

我不是一個buildout專家,但我希望你的python主代碼顯示在你的目錄結構中的「bin」下,並且你會以某種方式從那裏調用它。