virtualenv
.venv
這篇文章是閱讀Asabeneh的30 Days Of Python: Day 23 - Virtual Environment後的學習筆記與心得。
在 day 23、day25 都有使用 pip
安裝套件,像是 requests
和 beautifulsoup4
,但是,如果離開了資料夾,在 PowerShell (我的系統是 Windows) 用 pip list
查看,還是可以發現這兩個套件,就等於像 前端開發用 npm i -g
全域安裝的概念。
又一個但是,不是每個專案都適用同樣的套件版本,比如,Python 2 (目前已不推薦使用) 的專案,可能會無法使用 Python 3 的套件,這時就需要今天這章提到的 virtualenv
,或是 Python 3.3 後內建的 venv
(這章不會說明這個)。 -- 參考官方文件
virtualenv
pip install virtualenv
這邊會依據作業系統不同需要不同的指令:
python -m venv <folder_name>
virtualenv <folder_name>
使用後可以看到工作目錄 (working directory) 底下新增了一個 <folder_name>
資料夾,這邊我使用的名稱是 venv
。
<folder_name>\Scripts\activate
. <folder_name>/scripts/activate
source <folder_name>/bin/activate
啟用後可以在 CLI 的路徑前面看到 (<folder_name>)
,代表成功啟用虛擬環境。
這時如果打 pip list
應該會看到前面安裝的套件都沒了,這是一個獨立的環境;為了測試這點,這邊選一個套件來安裝—Flask:
pip install Flask
可以透過先前學到的 pip freeze
來把這個環境設定存到 requirements.txt
中這樣其他拿到這個專案的開發者,可以透過在 CLI 執行 pip install -r requirements.txt
安裝專案需要的套件。
在 CLI 輸入並執行:
deactivate
.venv
就像前端會排除 node_modules
這個資料夾,因為下載專案資料夾的人可以透過 package.json
和執行 npm install
來抓取專案需要的依賴一樣;Python 專案中也會在 .gitignore
裡寫下並藉此排除 .venv
進到 git 的紀錄中。
其他可以排除的檔案可以參考這篇文章。