安装

通过python包管理工具

命令行输入

 $pip install  cookiecutter

或者

# mac os经常会禁止用户全局安装python包
$pip install --user cookiecutter

如果使用的是anaconda,想使用conda安装,可以

$conda config --add channels conda-forge
$conda install cookiecutter

***特别提醒:要保证Python在你的系统PATH路径下,同时保证bin目录在你的系统PATH路径下。特别提醒,anaconda安装的Python,其安装的python执行文件默认不在系统路径下,一般在·$ANACONDA/bin·,请将其放置在系统路径下。


通过系统的包管理

ubuntu

$sudo apt install cookiecutter

mac os

$brew install cookiecutter

Cookiecutter模板基础使用

Cookiecutter模板的形式:

  • 模板文件夹
  • 模板文件夹的zip压缩文件
  • 模板文件夹的git地址
  • 模板文件夹的zip压缩文件url地址
  • 模板文件夹在cookiecutter目录下

针对具体形式分别使用相同的命令形式:

# 模板文件夹
$ cookiecutter /path/to/template
# 模板文件夹zip压缩包文件
$ cookiecutter /path/to/template.zip
# 模板文件夹的git地址
$ cookiecutter git地址
$ cookiecutter https://github.com/audreyr/cookiecutter-pypackage.git --checkout develop
# 模板文件夹zip压缩文件URL
$ cookiecutter https://example.com/path/to/template.zip
# 模板文件夹在cookiecutter目录(缺省会~/.cookiecutters/目录下)
$ cookiecutter 模板名字

特别针对有密码的zip文件,cookiecutter回给出提示符让你输入密码,如果想跳过密码输入,可以设置COOKIECUTTER_REPO_PASSWORD环境变量,在zip文件需要密码的时候会自动填入该环境变量的值。

整体需要注意的:

  • 无论何时你根据一个模板生成了一个项目,生成的项目都会在你的当前路径下
  • 克隆的cookiecutters默认存储在〜/.cookiecutters/目录中

创建Cookiecutter模板

Cookiecutter功能原理是获取模板的源目录树并将其复制到新项目中,将在模板用{{和}}标记中找到的所有名称替换为cookiecutter.json文件中找到的名称。

替换的名称可以是文件名、目录名和文件中的字符串。

使用Cookiecutter,你可以轻松地从一个标准表单引导一个新项目,这意味着在开始一个新项目时,你可以跳过所有常见的错误,拜托琐碎操作带来的时间消耗以快速开始有真正意义的工作。

以下以一个简单的“Hello World”来介绍Cookiecuter的创建过程:

首先,在您的计算机上创建一个目录。这个目录的名称将是您的Cookiecutter模板的名称,但是它并不限制任何其他内容——例如,生成的项目不需要使用模板名称。我们将项目名称设为HelloWorld

$ mkdir HelloWorld
$ cd HelloWorld

我们在此目录中创建要复制到生成项目中的目录树。我们想要为此目录生成一个名称,所以我们将目录名称放在模板标签中:

$ mkdir {{ cookircutter.directory_name }}
$ cd {{ cookircutter.directory_name }}

模板标记中的任何内容都可以放在名称空间中。cookiecutter.directory_name将被从cookiecutter.json文件中查找,因为该项目是由Cookiecutter生成的。

现 我们在将要被复制的目录树中。对于这个最简单的Cookiecutter模板,我们打算只包含一个文件。同样,我们希望从cookiecutter.json中查找文件名,因此我们将其命名为:

$ touch {{cookiecutter.file_name}}.py

(touch会创建一个空文本文件;你可以在编辑器中打开它)。 现在编辑文件,使其包含:

print("Hello, {{cookiecutter.greeting_recipient}}!")

最后,我们来创建cookiecutter.json文件,以便Cookiecutter可以查找我们所需要模板项。

{
"directory_name": "Hello",
"file_name": "Howdy",
"greeting_recipient": "Tacey"
}

现在我们可以运行Cookiecutter并从模板创建一个新项目。切换到要创建新项目的目录。然后运行Cookiecutter并将模板所在的目录传给它。

$ cookiecutter /the/path/of/HelloWorld
directory_name [Hello]:
file_name [Howdy]:
greeting_recipient [Tacey]:

Cookiecutter告诉我们每个项目的默认名称是什么,并为我们提供了用新名称替换该名称的选项。在这种情况下我只是简单的按回车接受所有的默认值~

现在我们生成了一个名为Hello的目录,其中包含一个文件how .py。当我们运行它:

$ python Howdy.py
Hello, Tacey!

Wow!这就完事儿了~

本章结语

到了这里,如果你在开始新项目时发现自己在重复工作,你就已经会知道如何使用cookiecutter消除这种无谓的重复了。对于一些常见的项目,不妨尝试选择使用Cookiecutter: 更好的项目模板工具:(1)简介及可用资源汇总中的某个模板~~~~~

Cookiecutter: 更好的项目模板工具:(2)安装及基础使用的更多相关文章

  1. Cookiecutter: 更好的项目模板工具:(1)简介及可用资源汇总

    原文档地址:https://cookiecutter.readthedocs.io/en/latest/ 本系列只介绍cookiecutter的基础使用,而且会删除与功能使用无关的部分.深度使用及了解 ...

  2. Cookiecutter: 更好的项目模板工具:(3)高级用法

    本文中的Hook就是钩子,钩子就是Hook 使用生成前/生成后钩子脚本 你可以在项目生成之前和/或之后运行Python或Shell脚本. 像这样把它们放进Hook里: cookiecutter-som ...

  3. 制作VB项目打包工具与安装程序

    该原因起于错误429. 当然比起自制我更推荐使用其他的功能完整的打包软件. 犹豫各种原因,导致三分钟热情被浇灭...本来想划四个部分详细讲教程的,大家看成品源码就好了,心好累. http://www. ...

  4. Vue项目模板--和--webpack自动化构建工具的---项目打包压缩使用

    [首先安装node.js]: 1. 从node.js官网下载并安装node,安装过程很简单. 2. npm 版本需要大于 3.0,如果低于此版本需要升级它: # 查看版本 npm -v2.3.0 #升 ...

  5. Vue.js——60分钟webpack项目模板快速入门

    概述 browserify是一个 CommonJS风格的模块管理和打包工具,上一篇我们简单地介绍了Vue.js官方基于browserify构筑的一套开发模板.webpack提供了和browserify ...

  6. Vue.js——60分钟browserify项目模板快速入门

    概述 在之前的一系列vue.js文章,我们都是用传统模式引用vue.js以及其他的js文件的,这在开发时会产生一些问题. 首先,这限定了我们的开发模式是基于页面的,而不是基于组件的,组件的所有代码都直 ...

  7. Gulp.js - 简单、直观的自动化项目构建工具

    Gulp.js 是一个简单.直观的构建系统.崇尚代码优于配置,使复杂的任务更好管理.通过结合 NodeJS 的数据流的能力,你能够快速构建.通过简单的 API 接口,只需几步就能搭建起自己的自动化项目 ...

  8. 20Spring_JdbcTemplatem模板工具类

    JdbcTemplate 是Spring提供简化Jdbc开发模板工具类.为了更好的了解整个JdbcTemplate配置数据库连接池的过程,这篇文章不采用配置文件的方式,而是采用最基本的代码 的方式来写 ...

  9. cocos2d-x创建新项目模板

    1.起因 长期使用项目中自带的HelloWorldScene来创建模板工程,不知大家有木有感到厌烦? 我是个懒人,所以就弄了个新的模板工程.这样最起码可以不用每次都把HelloWorldScene删掉 ...

随机推荐

  1. android面试题总结加强再加强版(一)

    在加强版的基础上又再加强的android应用面试题集 有些补充略显臃肿,只为学习 1.activity的生命周期. 方法 描述 可被杀死 下一个 onCreate() 在activity第一次被创建的 ...

  2. windows下Graphviz安装及入门教程

    下载安装配置环境变量 intall 配置环境变量 验证 基本绘图入门 graph digraph 一个复杂的例子 和python交互 发现好的工具,如同发现新大陆.有时,我们会好奇,论文中.各种专业的 ...

  3. mysql函数之SUBSTRING_INDEX(str,"/",-1)

    SUBSTRING_INDEX的用法: •SUBSTRING_INDEX(str,delim,count) 在定界符 delim 以及count 出现前,从字符串str返回自字符串.若count为正值 ...

  4. requirejs amd module load example

    person.js /** * This example make use of requireJS to provide a clean and simple way to split JavaSc ...

  5. Deep Learning.ai学习笔记_第五门课_序列模型

    目录 第一周 循环序列模型 第二周 自然语言处理与词嵌入 第三周 序列模型和注意力机制 第一周 循环序列模型 在进行语音识别时,给定一个输入音频片段X,并要求输出对应的文字记录Y,这个例子中输入和输出 ...

  6. iOS scrollsToTop属性失效

    点击状态栏返回顶部失效,是因为scrollView的scrollsToTop属性失效 (继承于scrollView的tableView collectionView也算). 这个属性默认是开启的,然而 ...

  7. ubuntu install google-chrome-stable

    google-chrome-stable is available on a 3rd Party Repository: Google Chrome (for Stable). Follow the ...

  8. [转]tensorflow中的gather

    原文链接 tensorflow中取下标的函数包括:tf.gather , tf.gather_nd 和 tf.batch_gather. 1.tf.gather(params,indices,vali ...

  9. springboot nginx 配置

    安装nginx参考本人另一篇博客:http://www.cnblogs.com/gmq-sh/p/5750833.html spring-boot需要启动nginx的,用于监听启动的端口.一.配置ng ...

  10. Linux中安装mongodb

    1,使用二进制包安装Mongodb 使用wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.6.0.tgz 下载编译好的二进制包( ...