cookiecutter · PyPI官网

一、安装

1、通过python包管理工具

$pip install cookiecutter

如果使用的是 conda,想使用conda安装

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

添加环境变量:

通常path在UNIX和macOS上是 ~/.local/,在Windows上是 %APPDATA%\Python。

UNIX 和 macOS

对于 bash shell,将以下内容添加到  .bash_profile 文件(针对其他 shell 进行调整):

# Add ~/.local/ to PATH
$export PATH=$HOME/.local/bin:$PATH
$source ~/.bash_profile   #重新加载

Windows

在计算机上搜索“环境变量”(在Windows 10上,它位于“系统属性–>高级”下)

示例段应该类似于 %APPDATA%\Python\Pyth3x\Scripts

需要重新启动命令行加载环境变量。有关完整详细信息,请参阅配置 Python( Windows )。

注意:要保证Python在你的系统PATH路径下,同时保证bin目录在你的系统PATH路径下。

特别提醒,anaconda安装的Python,其安装的python执行文件默认不在系统路径下,一般在$ANACONDA/bin,请将其放置在系统路径下。

2、通过系统的包管理

ubuntu

$sudo apt install cookiecutter

mac os

$brew install cookiecutter

备用安装

Pipx(Linux、OSX 和 Windows):

$pipx install cookiecutter

0.7.0及以后的版本中:

1、Cookiecutter 在生成项目后不再删除克隆的 repo。

2、克隆的 repos 保存到 ~/.cookiecutters/ 中。

3、可以选择创建一个 ~/.cookiecutterrc 配置文件。

cookiecutter升级:

python3 -m pip install --upgrade cookiecutter

二、使用

cookiecutter · PyPI官网

cookiecutter.json中定义的变量在模板中要使用 {{cookiecutter.repo_name}}、{{cookiecutter.service_name}}、{{cookiecutter.file_name}}.py 进行替换填写,以便于生成项目的时候进行渲染。如果在命令行的参数使用 -o 选项指定,项目则生成到当前目录或目标目录

{"repo_name": "helloworld","file_name": "cutter","service_name": "register"
}

1、已有模板

1、对于远程的模板:

# 直接使用Github上的远程模板创建项目
$ cookiecutter https://github.com/audreyfeldroy/cookiecutter-pypackage
# 为了简洁起见,GitHub上的repo可以使用“gh”前缀
$ cookiecutter gh:audreyfeldroy/cookiecutter-pypackage

2、使用本地模板:

# 在当前工作目录中, 从本地 cookiecutter-package/ template(模板)创建项目
# 示例:从GitHub上git clone一个项目模板到本地,然后根据自己需要对项目模板进行修改1、首先,克隆一个 Cookiecutter 项目模板到本地:
$ git clone git@github.com:audreyr/cookiecutter-pypackage.git2、修改cookiecutter.json中定义的变量
3、cookiecutter.json中定义的变量在模板中要使用 {{cookiecutter.repo_name}}/{{cookiecutter.repo_name}}/{{cookiecutter.repo_name}}.py 形式进行替换填写#您可能还想创建一个 repo,将其命名为不同的名称,并将其作为自己的新 Cookiecutter 项目模板进行推送,以方便将来使用。4、然后从项目模板生成您的项目:
# 唯一的参数是输入目录。(输出目录是通过渲染生成的,不能和输入目录相同。)
$ cookiecutter cookiecutter-pypackage/

3、从Python使用

from cookiecutter.main import cookiecutter
# 从 cookiecutter-pypackage/ template 创建项目
cookiecutter('cookiecutter-pypackage/')
# 从 cookiecutter-pypackage.git repo template 创建项目
cookiecutter('https://github.com/audreyfeldroy/cookiecutter-pypackage.git')

如果不使用 --no-input参数, 将提示输入:

  • 提示在 cookiecutter.json中填写的key
  • 默认的是 cookiecutter.json中填写的value
  • 提示按顺序显示

~/.cookiecutterrc文件支持跨平台

default_context:full_name: "Audrey Roy Greenfeld"email: "audreyr@gmail.com"github_username: "audreyfeldroy"
cookiecutters_dir: "~/.cookiecutters/"

Cookiecutter(克隆的 Cookiecutter项目模板)默认放在~/.cookiecutters/中,或者指定cookiecutters_dir目录。

如果您已经将cookiecutter克隆到~/.cookiecutters/中,您可以通过目录名引用它:

# Clone cookiecutter-pypackage
$ cookiecutter gh:audreyfeldroy/cookiecutter-pypackage
# Now you can use the already cloned cookiecutter by name
$ cookiecutter cookiecutter-pypackage

默认上下文:指定要在生成项目时用作默认值的键/值对。

使用命令行参数注入额外的上下文:

直接访问Cookie执行器API允许注入额外的上下文。

本地项目的路径可以指定为绝对路径或相对路径。

如果使用-o选项指定,项目则生成到当前目录或目标目录

cookiecutter --no-input gh:msabramo/cookiecutter-supervisor program_name = foobar startsecs = 10

2、创建模板

  • 支持无限级别的目录嵌套。

  • 模板100%是用Jinja2完成的。

  • 目录名和文件名都可以模板化。例如:

    {{cookiecutter.repo_name}}
    {{cookiecutter.service_name}}
    {{cookiecutter.file_name}}.py
  • 在 cookiecutter.json 文件中简单的定义模板变量。例如:
{"full_name": "Audrey Roy Greenfeld","email": "audreyr@gmail.com","project_name": "Complexity","repo_name": "complexity","project_short_description": "Refreshingly simple static site generator.","release_date": "2013-07-10","year": "2013","version": "0.1.1"
}

3、cookiecutter目录中的结构

Cookiecutter 1.7 中的新功能

Cookiecutter 引入了在一个存储库或 zip 文件中组织多个模板的能力,并通过目录将它们分开。这允许对一般文件使用符号链接。这是一个演示此功能的示例存储库:

https://github.com/user/repo-name.git├── directory1-name/|   ├── {{cookiecutter.project_slug}}/|   └── cookiecutter.json└── directory2-name/├── {{cookiecutter.project_slug}}/└── cookiecutter.json

要使用子目录中的一个模板,请使用 --directory 选项

cookiecutter https://github.com/user/repo-name.git --directory="directory1-name"

cookiecutter工具相关推荐

  1. 如何创建一个数据科学项目?

    摘要: 在一个新的数据科学项目,你应该如何组织你的项目流程?数据和代码要放在那里?应该使用什么工具?在对数据处理之前,需要考虑哪些方面?读完本文,会让你拥有一个更加科学的工作流程. 假如你想要开始一个 ...

  2. 如何创建一个数据科学项目? 1

    假如你想要开始一个新的数据科学项目,比如对数据集进行简单的分析,或者是一个复杂的项目.你应该如何组织你的项目流程?数据和代码要放在那里?应该使用什么工具?在对数据处理之前,需要考虑哪些方面? 数据科学 ...

  3. Python基础进阶(前言)

    前言 你好,世界!作为一个年轻的程序员和90年代后期的黑客爱好者,我经常认真阅读最新一期的2600:黑客季刊.有一天,我终于鼓起勇气参加了杂志社在我所在城市举办的每月一次的聚会,惊叹于其他人看来是多么 ...

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

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

  5. Python 开发工具链全解

    可能刚开始学习Python时,有人跟你说可以将源文件所在的文件夹添加到 PYTHONPATH环境变量中,然后可以从其他位置导入此代码.在大多数情况下,这个人常常忘记补充这是一个非常糟糕的主意.有些人在 ...

  6. iospython开发工具_使用Python开发iOS程序

    们见过使用JS.Lua.Ruby开发iOS程序的,但是基本没有见过使用Python开发iOS程序(软件)的,这是为什么?关于这个问题,我后面会回答. 那么,怎么用Python开发iOS程序呢?其实我们 ...

  7. python开发工具下所有软件都打不开_Python 开发工具链全解

    可能刚开始学习Python时,有人跟你说可以将源文件所在的文件夹添加到 PYTHONPATH环境变量中,然后可以从其他位置导入此代码.在大多数情况下,这个人常常忘记补充这是一个非常糟糕的主意.有些人在 ...

  8. Cookiecutter

    Cookiecutter: 更好的项目模板工具:(1)简介及可用资源汇总 原文档地址:https://cookiecutter.readthedocs.io/en/latest/ 本系列只介绍cook ...

  9. Django 优秀资源大全项目资源非 Python 包工具贡献

    Awesome Django 介绍 Awesome-Django 是由 Roberto Rosario 发起和维护的 Django 资源列表.该列表收集了大量 Django 相关的优秀应用.项目等资源 ...

最新文章

  1. Linux下屏蔽Ctrl+Alt+Delete
  2. 十一:外观模式详解(Service,action与dao)
  3. 递归算法(一)递归概念与思路
  4. 麦肯锡指出布局金融生态圈对中国国内银行意义重大
  5. Struts2请求处理流程及源码分析
  6. Spark解决的问题与体系结构
  7. CentOS 修改默认语言
  8. 思科3524交换机配置vlan
  9. python解析visio_再见,Visio!
  10. android利用socket与java后台交互的设计与实现
  11. cs学习使用4(代理)
  12. html设置word页脚,Word页码从任意页开始如何设置?
  13. 大型国企用泛微OA,让会务管理有序,让会议开展高效
  14. UE4 Pak包热更新
  15. 【触动精灵】开发手册学习整理(一)
  16. Framer for UX Design 用于UX设计的Framer Lynda课程中文字幕
  17. 互联网架构概述 互联网架构演变过程
  18. 光纤振动传感器在海底光缆安全防护的应用
  19. YunOS场景文字识别
  20. CorelDrawX8安装时提示已安装另一个版本

热门文章

  1. 财经郎眼:房价要跌了吗
  2. hdu5468 A Puzzled Elena (容斥原理)
  3. 【BP回归预测】随机蛙跳算法SFLA优化神经网络数据回归预测【含Matlab源码 2272期】
  4. h5页面怎么处理文件流_H5页面实现下载文件(apk、txt等)的三种方式
  5. html 超链接ppt,HTML和超链接.ppt
  6. 基于FFMPEG实现视频倒放功能(实时倒放)
  7. python判断数字奇偶_python如果快速判断数字奇数偶数
  8. JPEG系列二 JPEG文件中的EXIF(下)
  9. 小红书笔记搜索排名监控,小红书笔记排名运营
  10. 大学计算机应用基础第二版教学视频,西安交通大学《计算机应用基础》课程视频(61集)...