如何在Python中初始化项目布局?
假设有一个程序员遇到了这样的问题:他想开始一个新的Python项目。他需要一些基本的框架,比如测试目录、源代码目录、setuptools脚本等等。他怎么才能通过一个命令就创建好这些东西和布局呢?
比如,paster(在某个答案中提到的工具)可以提供这样的服务。
paster create
Selected and implied templates: PasteScript#basic_package
A basic setuptools-enabled package
但是paster是一个工具的一部分,它的主要功能并不是用来部署包的。如果我想要一个库的模板和一个应用程序的模板,我该怎么修改这些模板,加入我自己的内容呢?
4 个回答
我正在使用 modern-package-template
来布局我的Python项目。
modern-package-template 是一个PasteScript模板,用来为你的Python项目创建一个初始布局,采用Python社区中现代的工具和做法。因此,你的项目将具备以下特点:
- 使用Distribute而不是setuptools,因为BDFL(Python的最高领导者)自己支持它。
- 支持Buildout,虽然你并不一定要使用它。
- README.txt和NEWS.txt会自动包含在你的包的元数据中,作为长描述,这样它们就会出现在你项目的PyPI页面上。
- 使用Distribute自动创建脚本(或.exe文件)。
更多信息和下载请访问pypi: http://pypi.python.org/pypi/modern-package-template
你需要一些支持模板功能的工具来实现这个目标。在Python社区中,最常用的工具是pastescript。
easy_install pastescript # A one-time install
paster create
如果你已经决定了包的名称,那么只需要这样做:
paster create mypackage
如果你想自定义模板,最简单的方法就是创建一个自己的Python包,把你想要的自定义模板放进去。一旦你把它安装到你的环境中,就可以随意使用这个自定义模板了。(这就是像pylons这样的框架用来为网页应用创建模板的方式)。
paster create -t libtemplate mypackage
paster create -t apptemplate mypackage
想了解更多关于如何创建模板的信息(模板是代码和源文件的混合),可以看看这个链接:http://pythonpaste.org/script/developer.html#templates。你会发现模板支持继承,这样你就可以在已有模板的基础上进行扩展,或者从头开始创建自己的模板。
如果想看一个自定义模板的好例子,可以查看pylons的模板源码,链接在这里:Pylons模板代码
另外,如果你还没有使用的话,建议你看看Ian Bicking的virtualenv。它可以让你创建临时的“虚拟”环境,这样你就可以安装Python包,而不会和你系统中已经安装的包产生冲突。
一个标准的使用virtualenv和pastescript的设置可能看起来像这样:
mkdir mypackage && cd mypackage
virtualenv --distribute env
source env/bin/activate # 'Turns on / activates' the environment
easy_install pastescript
paster create mypackage