1. 程式人生 > >Cookiecutter: 更好的項目模板工具:(2)安裝及基礎使用

Cookiecutter: 更好的項目模板工具:(2)安裝及基礎使用

內容 安裝 won 存儲 我們 自動 log conda r.js

安裝

通過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)安裝及基礎使用