Masonite 是新興的 Python web 框架,風格類似 Rails 與 Laravel。下文使用的是 Masonite 2.2 LTS 版。
Pipenv 則是 Python 的虛擬環境與依賴包管理器,類似 Ruby 的 Bundler 或 PHP 的 Composer。
Python 生態的虛擬環境與包管理器目前還沒有一個業界標準,較多人使用的至少就有三種:venv、Pipenv、Poetry,因為 venv 是 Python 自帶的,更加底層,真正在應用面上的競爭者只有 Pipenv 與 Poetry。
這篇紀錄一下 Masonite 與 Pipenv 搭配使用的一點筆記。
在 Masonite 的安裝文件內只講到最傳統的 requirements.txt 與 Python 自帶的 venv 的用法,因為本人較慣於使用 Pipenv,所以留點紀錄在此。
首先參照 Masonite 安裝文件把 Python、OpenSSL / LibreSSL 相關包裝好裝滿,以及 Pipenv 也裝好裝滿。
在 Python 全域環境裝 moasonite-cli:
$ pip3 install masonite-cli
裝完就會用 craft
可以使用。Craft 是 Masonite 的命令列工具,相當於 Rails 的 rails
命令。
用 craft
建立新專案,注意它會用專案名建立一個目錄,專案的初始檔案與目錄結構都會一併建出來。建完進入專案目錄:
$ craft new project_name
$ cd project_name
此時換 Pipenv 出場,剛剛的目錄進來後會有 requirements.txt 傳便便在這裡,內容只有一項:
masonite>=2.2,<2.3
在這裡初始化一個 Pipenv 虛擬環境,Pipenv 會自動偵測到 requirements.txt 並轉成 Pipfile,並且自動設置虛擬環境與安裝依賴包:
$ pipenv install
等 Pipenv 跑完,才進入虛擬環境跑 craft
的初始化:
$ pipenv shell
(virtual environment) $ craft install
等 craft
跑完,驗證一下:
(virtual environment) $ craft serve
瀏覽器開出來應該可以看到 Masonite 的首頁。
簡單歸納一下其實只有以下幾點:
- masonite-cli 包,裝在 Python 全域環境。
- masonite 包,裝在 Python 虛擬環境。
craft install
在虛擬環境內執行。- 之後要在專案內使用
craft
命令建立任何新的 model、controller、view 等檔案也都在 Python 虛擬環境下執行。