如何在Python中初始化项目布局?

11 投票
4 回答
6925 浏览
提问于 2025-04-15 16:24

假设有一个程序员遇到了这样的问题:他想开始一个新的Python项目。他需要一些基本的框架,比如测试目录、源代码目录、setuptools脚本等等。他怎么才能通过一个命令就创建好这些东西和布局呢?

比如,paster(在某个答案中提到的工具)可以提供这样的服务。

paster create 
Selected and implied templates: PasteScript#basic_package 
A basic setuptools-enabled package 

但是paster是一个工具的一部分,它的主要功能并不是用来部署包的。如果我想要一个库的模板和一个应用程序的模板,我该怎么修改这些模板,加入我自己的内容呢?

4 个回答

1

你可以自己制作模板。这在公司内部项目结构标准上非常有用。

开始制作自己的模板最好的方法是从一个现有的例子入手,复制粘贴其中相关的部分。推荐你看看 ZopeSkel,因为它是一个比较大的项目,里面有很多例子。你可以浏览一下 源代码

3

我正在使用 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

11

你需要一些支持模板功能的工具来实现这个目标。在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

撰写回答