我們再回到第一天提到的主題內容, 如下圖. 我們已經完成training與tracking的部份, 接下來我們開始準備serving的工作.
這次的serving任務, 我們先以手工打造的方式做一次, 也就是我們自已準備一個Django環境, 然後將先前訓練好模型複製到Django的專案中, 再由Django web server提供enodpint, 好讓使用者可以存取這個endpoint後得到推論的結果.
這一篇我們要做的事情是準備好Django環境, 以下操作是以Window的WSL環境進行說明, OS是ubuntu
安裝pip
$sudo apt-get install -y python3-pip
安裝virtualenv
$sudo pip3 install virtualenv
我們先在ubuntu下建立一個目錄, 名稱為ironman-workspace
, 我們的專案就放這個目錄, 然後再cd到這個目錄
$mkdir ironman-workspace
$cd ironman-workspace
建立虛擬環境
$virtualenv VENV
執行後會看到在目錄中已建立一個目錄, 名稱為VENV
啟用虛擬環境
$source VENV/bin/activate
執行後如下圖:
確認虛擬環境(VENV)目錄裡有什麼
一般來說, 不同的Django應用程式會有自己的虛擬環境(VENV), 目的是讓不同的應用程式可以使用不同版本的package, 例如應用程式A可以使用Django 3.x.x, 而應用程式B可以使用Django 3.y.y, 這是怎麼做到的呢?
我們現在來看一下VENV目錄下現在有什麼, 請執行
$cd VENV/lib/python3.8/site-packages/
$ll
在下圖. 目前沒有django這個目錄, 因為我們還沒安裝
安裝Django
好的, 接下來我們來安裝django
$cd ~/ironman-workspace
$pip install django
一切順利, 沒有噴錯. 這樣就安裝好了
確認安裝Django之後發生了什麼事
我們再來看看VENV目錄的內容, 執行
$cd VENV/lib/python3.8/site-packages/
$ll
如下圖. 我們可以看到在 site-packages
目錄中已安裝Django, 而且版本是3.2.6, 也就是在不同的虛擬環境目錄中, virtualenv這個工具會幫我們管理每個虛擬環境的package與版本,在啟用(activate)這個虛擬目錄之後, 所使用到的package就只會限制在虛擬目錄裡的package, 而不會跟其他虛擬目錄的版本有所衝突, 所以在同一個開發環境中, 你可以安裝多個彼此獨立且不同版本的開發環境.
這是我目前對虛擬環境的理解.
到這裡我們已經把Django的環境安裝完成, 接下來明天我們來寫Django的code