设为首页 加入收藏

TOP

使用Buildout进行开发
2014-11-23 23:22:49 来源: 作者: 【 】 浏览:10
Tags:使用 Buildout 进行 开发

关于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脚本。


注解:


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命令行工具。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Fabric:Python远程部署工具 下一篇virtualenv创建独立的Python环境

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: