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。

除此之外,您还可以拥有所需的任何文件/目录。

(0)

相关推荐

  • 后端Django + 前端Vue.js快速搭建web项目

    参考网上一篇文章做了点细节补充. 本篇使用Vue.js作为前端框架,代替Django本身较为孱弱的模板引擎,Django则作为服务端提供api接口,使得前后端实现完全分离,更适合单页应用的开发构建. ...

  • 快速创建Flask Restful API项目

    快速创建Flask Restful API项目 前言 Python必学的两大web框架之一Flask,俗称微框架.它只需要一个文件,几行代码就可以完成一个简单的http请求服务. 但是我们需要用fla ...

  • 谈谈cookiecutter-django生成的项目目录结构的优点

    cookiecutter-django是github上有着超过6000多颗星的第三方库,可以快速生成比django-admin startproject命令生成的默认目录更优秀的目录布局.今天我们就来 ...

  • 最佳实践:创建自己的项目模板

    项目模板可以将 Premiere Pro 项目的创建速度加快 10-15 分钟.节约的时间大约是一个工作日的 3%,但这是最有价值的 3%!项目模板能够不断地产生效益,节约时间和精力. 视频制作可能非 ...

  • 使用 .NET Core模板引擎创建自定义的模板和项目

    WEB前端开发社区 昨天本文是我们 .NET教育系列的一部分,该教育系列探讨了 .NET 技术的好处,以及它是如何不仅可以帮助传统的 .NET 开发人员,还可以帮助所有想要为市场提供可靠.高效且经济的 ...

  • 分享一个上传照片挣钱的项目,可长久实现躺赚

    有些朋友在入手选择做副业的时候,都有一个盲点,无从下手,不知道该如何操作 太复杂的又不想做 那今天我跟大家分享个简单的副业,只需动动手就能把钱赚到,有位实操者不到半年时间赚了18100元,当然还是那句 ...

  • 总投资32.4亿,钱塘区又来了一个重磅级科创中心项目!

    钱塘区成立后,发展的脚步越来越快.钱塘科学城的揭牌,下沙产业转型,从传统的制造业向科技研发转型,大江东智造产业突飞猛进,人才不断引入,未来可期. 如今又传来了好消息,总投资32.4亿的数字科创中心来了 ...

  • Orleans[NET Core 3.1] 学习笔记(四)( 1 )创建项目

    ClassRoom ClassRoom是一个练手demo,目的是为了能熟悉掌握Orleans的基本知识和使用方法,我会尽量在这个项目中加入更多的知识点,一边学一边练避免我看完文档就忘掉 创建项目 依旧 ...

  • 朱泾又有一个小区的加装电梯项目开工!

    朱泾又有一个小区的 加装电梯项目开工了 来瞧瞧你的小区 是不是也可以安装? 近日,朱泾镇南圩花苑小区 又有两栋居民楼的加装电梯项目开工. 一起去现场看看吧! 在南圩花苑16号,施工人员正在对电线进行排 ...

  • .Net项目模板(Project Template)

    dotNET跨平台 4天前 以下文章来源于桂迹 ,作者桂素伟 桂迹分享原创,记录痕迹! 你有没有这样的感觉,开启一个新项目时,总是做一堆体力活--项目的结构层次,常用日志库,OpenAPI库,ORM库 ...

  • 一个1000元的爬虫外包项目,三种爬虫模式给你轻松做出来

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 以下文章来源于青灯编程 ,作者:清风 Python爬虫.数据分析.网站开发等案例教程视频免费 ...

  • 练习maven创建项目

    目录 1 创建项目目录 2 编写主代码 2.1 在根目录创建pom.xml 文件 2.2 编写主代码类 2.3 编译maven项目 3 编写测试代码 3.1 更新pom.xml 文件 3.2 编写测试 ...