歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> 使用Buildout進行開發

使用Buildout進行開發

日期:2017/3/1 9:44:30   编辑:Linux編程

關於Buildout

Buildout是由Zope公司的JimFulton開發的一個工具,可以管理創建新的應用程序。這些應用程序可以是Python程序或者其他程序,比如Apache。Buildout的一個主要目的是可以創建可復用的跨平台程序。Buildout通過一個配置文件,可以從多個部分創建、組裝並部署新的應用,即使應用包含了非Python的組件,Buildout亦能勝任。Buildout不但能夠像setuptools一樣自動更新或下載安裝依賴包,而且還能夠像virtualenv一樣,構建一個封閉隔離的開發環境。

使用Buildout

Buildout是一個非常智能的軟件,僅需完成以下兩件事情:

最新的bootstrap.py的副本,下載請戳http://svn.zope.org/*checkout*/zc.buildout/trunk/bootstrap/bootstrap.py

具有“recipes”或者“eggs”項的buildout.cfg文件來進行安裝

具體步驟如下:

1. 建立開發目錄,可命名為demo-buildout,創建Buildout配置文件buildout.cfg:

#mkdir demo-buildout

#cd demo-buildout

#touch buildout.cfg

2. 下載buildout的引導腳本bootstrap.py,運行bootstrap.py來生成buildout相關的文件和目錄:

#wget http://svn.zope.org/*checkout*/zc.buildout/trunk/bootstrap/bootstrap.py

#python bootstrap.py

Creating directory '/root/buildout-demo/bin'.
Creating directory '/root/buildout-demo/parts'.
Creating directory '/root/buildout-demo/eggs'.
Creating directory '/root/buildout-demo/develop-eggs'.
Generated script '/root/buildout-demo/bin/buildout'.

引導腳本創建了目錄bin,parts,eggs,develop-eggs,在bin目錄下生成了buildout腳本。

注解:

  • bin目錄用來存放生成的腳本文件
  • parts目錄存放生成的數據,大多用不上。
  • develop-eggs 存放指向開發目錄的鏈接文件。和buildout.cfg中develop選項相關。
  • eggs 是存放從網絡上下載下來的egg包。這些包一般在buildout.cfg中的egg選項裡定義。

3. 創建配置文件:示例如下

#vim buildout.cfg

[buildout]

# 每個buildout都要有一個parts列表,也可以為空。

# parts用來指定構建什麼。如果parts中指定的段中還有parts的話,會遞歸構建。

parts = tools

[tools]

# 每一段都要指定一個recipe, recipe包含python的代碼,用來安裝這一段,

# zc.recipe.egg就是將這下面的egg安裝到eggs目錄中

recipe = zc.recipe.egg

# 定義python解釋器

interpreter = python

# 需要安裝的egg

eggs = pyramid

上述示例表示將Pyramid集成到Python環境中。Pyramid是一款結構簡單,穩定性好,響應速度快,文檔完備,可擴展性強的WEB框架。

運行Buildout構建安裝:

#bin/buildout

Installing tools.
Getting distribution for 'pyramid'.

......

使用buildout來構建項目:

#bin/pcreate -t starter myproject

配置Buildout:

#vim buildout.cfg


[buildout]


parts = tools

[tools]

recipe = zc.recipe.egg

interpreter = python

eggs = pyramid


[apps]

recipe = zc.recipe.egg

eggs = myproject


運行buildout:

#bin/buildout

在Buildout環境中啟動myproject:

#bin/pserve myproject/development.ini

Starting server in PID 40619.

serving on http://0.0.0.0:6543

4. Buildout對運行目錄的完全的控制權

Buildout對運行目錄具有完全的控制權,並且每次Buildout運行時,它都會讀取buildout.cfg文件來查找指令,如果我們刪除了列出的egg,它會有效刪除命令行工具和庫:

若修改配置文件為:

[buildout]


parts =

其中egg和自定義的解釋器都被刪除,執行buildout之後:

#bin/buildout -N

Uninstalling tools

-N選項表示僅列出修改後的輸出。查看bin目錄,僅剩下Buildout命令行工具。

Copyright © Linux教程網 All Rights Reserved