cookiecutter工具
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
假如你想要开始一个新的数据科学项目,比如对数据集进行简单的分析,或者是一个复杂的项目.你应该如何组织你的项目流程?数据和代码要放在那里?应该使用什么工具?在对数据处理之前,需要考虑哪些方面? 数据科学 ...
- Python基础进阶(前言)
前言 你好,世界!作为一个年轻的程序员和90年代后期的黑客爱好者,我经常认真阅读最新一期的2600:黑客季刊.有一天,我终于鼓起勇气参加了杂志社在我所在城市举办的每月一次的聚会,惊叹于其他人看来是多么 ...
- Cookiecutter: 更好的项目模板工具:(1)简介及可用资源汇总
原文档地址:https://cookiecutter.readthedocs.io/en/latest/ 本系列只介绍cookiecutter的基础使用,而且会删除与功能使用无关的部分.深度使用及了解 ...
- Python 开发工具链全解
可能刚开始学习Python时,有人跟你说可以将源文件所在的文件夹添加到 PYTHONPATH环境变量中,然后可以从其他位置导入此代码.在大多数情况下,这个人常常忘记补充这是一个非常糟糕的主意.有些人在 ...
- iospython开发工具_使用Python开发iOS程序
们见过使用JS.Lua.Ruby开发iOS程序的,但是基本没有见过使用Python开发iOS程序(软件)的,这是为什么?关于这个问题,我后面会回答. 那么,怎么用Python开发iOS程序呢?其实我们 ...
- python开发工具下所有软件都打不开_Python 开发工具链全解
可能刚开始学习Python时,有人跟你说可以将源文件所在的文件夹添加到 PYTHONPATH环境变量中,然后可以从其他位置导入此代码.在大多数情况下,这个人常常忘记补充这是一个非常糟糕的主意.有些人在 ...
- Cookiecutter
Cookiecutter: 更好的项目模板工具:(1)简介及可用资源汇总 原文档地址:https://cookiecutter.readthedocs.io/en/latest/ 本系列只介绍cook ...
- Django 优秀资源大全项目资源非 Python 包工具贡献
Awesome Django 介绍 Awesome-Django 是由 Roberto Rosario 发起和维护的 Django 资源列表.该列表收集了大量 Django 相关的优秀应用.项目等资源 ...
最新文章
- Linux下屏蔽Ctrl+Alt+Delete
- 十一:外观模式详解(Service,action与dao)
- 递归算法(一)递归概念与思路
- 麦肯锡指出布局金融生态圈对中国国内银行意义重大
- Struts2请求处理流程及源码分析
- Spark解决的问题与体系结构
- CentOS 修改默认语言
- 思科3524交换机配置vlan
- python解析visio_再见,Visio!
- android利用socket与java后台交互的设计与实现
- cs学习使用4(代理)
- html设置word页脚,Word页码从任意页开始如何设置?
- 大型国企用泛微OA,让会务管理有序,让会议开展高效
- UE4 Pak包热更新
- 【触动精灵】开发手册学习整理(一)
- Framer for UX Design 用于UX设计的Framer Lynda课程中文字幕
- 互联网架构概述 互联网架构演变过程
- 光纤振动传感器在海底光缆安全防护的应用
- YunOS场景文字识别
- CorelDrawX8安装时提示已安装另一个版本
热门文章
- 财经郎眼:房价要跌了吗
- hdu5468 A Puzzled Elena (容斥原理)
- 【BP回归预测】随机蛙跳算法SFLA优化神经网络数据回归预测【含Matlab源码 2272期】
- h5页面怎么处理文件流_H5页面实现下载文件(apk、txt等)的三种方式
- html 超链接ppt,HTML和超链接.ppt
- 基于FFMPEG实现视频倒放功能(实时倒放)
- python判断数字奇偶_python如果快速判断数字奇数偶数
- JPEG系列二 JPEG文件中的EXIF(下)
- 小红书笔记搜索排名监控,小红书笔记排名运营
- 大学计算机应用基础第二版教学视频,西安交通大学《计算机应用基础》课程视频(61集)...