cookiecutter-一个从cookiecutter(项目模板)创建项目的命令行工具python库
Cookiecutter是用于从cookiecutter(项目模板)创建项目的工具。、
这到底是什么做什么用的?请看下文。
案例研究
cookiecutter-pypackage是一个cookiecutter模板,用于为Python软件包创建入门模板。
步骤1:产生Python封装专案
打开您的shell,并cd进入您要创建Python入门包项目的目录。
在命令行上,运行cookiecutter命令,将链接传递给cookiecutter-pypackage的HTTPS克隆URL,如下所示:
$ cookiecutter https://github.com/audreyr/cookiecutter-pypackage.git
项目模板的本地克隆:
首先,将cookiecutter-pypackage克隆到〜/ .cookiecutters /(或Windows上的类似的文件)。Cookiecutter会自动为您完成此操作。
本地项目生成:
克隆完成后,系统将提示您输入一堆值,例如full_name,email和project_name。输入您的信息,或直接按回车/输入以接受默认值。
此信息将用于填补您的项目的空白。例如,您的姓名和年份将被放入LICENSE文件中。
步骤2:探索产生了什么
在当前目录中,您应该看到生成了一个项目:
$ ls
boilerplate
在boilerplate /目录(或与project_slug对应的目录)中,您应该看到类似以下内容:
这就是您的新项目里面的文件。
如果打开AUTHORS.rst文件,应该看到类似以下内容:
请注意,它是如何使用您(或我)的姓名和电子邮件自动填充的。
还请注意您正在查看ReStructuredText文件的事实。Cookiecutter可以使用任何类型的文本文件生成一个项目。
步骤3:观察它是如何产生的
让我们一起看一下cookiecutter-pypackage。在新的浏览器窗口中打开github.com/audreyr/cookiecutter-pypackage。
找到名为{{cookiecutter.project_slug}}的目录,点击它,观察其中的文件。您应该看到此目录及其内容与您刚生成的项目相对应。
这发生在find.py,其中find_template()方法查找第一个目录名称并启动。
现在,导航回升至18.11/pypackage 并打开 cookiecutter.json文件。
您应该看到与项目生成期间前面显示的提示和默认值相对应的JSON:
{
"full_name": "Audrey Roy Greenfeld",
"email": "aroy@alum.mit.edu",
"github_username": "audreyr",
"project_name": "Python Boilerplate",
"project_slug": "{{ cookiecutter.project_name.lower().replace(' ', '_') }}",
"project_short_description": "Python Boilerplate contains all the boilerplate you need to create a Python package.",
"pypi_username": "{{ cookiecutter.github_username }}",
"version": "0.1.0",
"use_pytest": "n",
"use_pypi_deployment_with_travis": "y",
"create_author_file": "y",
"open_source_license": ["MIT", "BSD", "ISCL", "Apache Software License 2.0", "Not open source"]
}
安装cookiecutter
在命令行中运行:$ pip install --user cookiecutter
或者,如果您没有pip,可以直接在网盘下载cookiecutter的源代码。
示例
这是一个简单的cookiecutter的目录结构:
你必须有:
一个cookiecutter.json文件。
一个{{cookiecutter.project_name}} /目录,其中 PROJECT_NAME在您定义cookiecutter.json。
除此之外,您还可以拥有所需的任何文件/目录。