如果您仍未安裝 Python 或 Visual Studio Code,可以參考這篇關於 VS Code 的文章喔:
- macOS 如何下載安裝 Python 3?教您輕鬆逐步用 Homebrew
- VSCode 1/5: macOS 最佳 Python 編程工具?豐富的插件商店?Visual Studio Code 安裝攻略
經過上次的 VS Code 安裝簡介後,我們正式進入進入 Python 編程了!
寫 Code 的第一步,是做好專案管理(Project Management)。今天我們會學習如何使用一個虛擬環境(Virtual Environment)管理我們的 Python 專案。
為什麼需要虛擬環境(Virtual Environment)?
虛擬環境是一個類似沙盒(Sandbox)的概念。透過建立獨特於每個 Python 專案的虛擬環境,我們可以在不影響其他專案的情況下,控制:
- 這個專案使用的 Python 版本
- 這個專案安裝並使用的 Python libraries
- 這個專案的 Python 偏好設定
試想像我們有兩個專案:專案 A 使用大量的 Python libraries,而專案 B 使用少量的 Python libraries。
當我們部署(Deploy)這 2 個專案到伺服器時,我們需要要求每個伺服器安裝所需的 Python libraries。如果我們沒有以虛擬環境分隔專案 A 與專案 B,則專案 B 會安裝大量無需的 Python libraries。
更甚的是假如專案 A 的 libraries 不相容於專案 B,那麼我們沒有虛擬環境下,便不能運行專案 B(因為我們沒有專案 B 所需的 libraries)。
由此可見,虛擬環境是其中一個編程的好習慣(Best Practice),省卻我們部署專案、完成企劃時的煩惱。
如何安裝虛擬環境?
虛擬環境(Virtual Environment)是一個可以使用 pip 管理員安裝的 Python 插件。
我們首先開啟 VS Code,並按一下 Cmd + Shift + P 開啟 Command Palette。輸入「terminal」,並選取「Python: Create Terminal」的選項。
如您沒有「Python: Create Terminal」的選項,可以參考這篇教學,從 Extension Store 安裝「Python」插件:VSCode 1/3: macOS 最佳 Python 編程工具?豐富的插件商店?Visual Studio Code 安裝攻略
VS Code 下方應該會出現「TERMINAL」。
如果您見到如下圖的的彈出,按一下「Select Python Interpreter」
選擇「Python 3.7.10 64-bit」或其他您已安裝的 Python 3 版本。
如您找不到 Python 3 的版本,或未在 macOS 安裝 Python 3,可以按這個連結:macOS 如何下載安裝 Python 3?教您輕鬆逐步用 Homebrew
成功後,回到 VS Code 下方的 TERMINAL,輸入以下代碼並按 Return(Enter):
pip3 install virtualenv
如果您安裝的是 pip 而非 pip3,可以使用 pip install virtualenv
。
看到「Successfully installed …… virtualenv-20.6.0」(或其他版本)即表示您已成功安裝 virtualenv
,可以建立新的虛擬環境了。
第 1 步:建立新文件夾
以下的步驟適用於每一次開啟新的 Python 專案(Project)。
如果您的 VS Code 顯示「Open Folder」或下面的列是紫色,我們需要先建立一個專屬這個專案的文件夾。
按一下「Open Folder」。
建立並選擇一個新的文件夾。
按一下「Yes, I trust the authors」繼續。這是 VS Code 的保護機制,讓我們避免運行惡意的代碼。
最後,我們應該在 VS Code 底下見到藍色的列(而非紫色),而左邊的 Explorer 顯示我們在「vscode-example」的文件夾裡。
第 2 步:在文件夾建立虛擬環境
首先我們如上按 Cmd + Shift + P 開啟 Command Palette,並選擇「Python: Create Terminal」。
留意我們的 Terminal 第一行的「%」前應該出現「vscode-example」(或您自訂的文件夾名稱)的字眼如下圖黃色框裡。
在 TERMINAL 輸入以下的代碼,並按一下 Return(Enter):
virtualenv .venv
Terminal 完成處理後,您應該見到左邊的 Explorer 裡多了「.venv」的文件夾。這是我們虛擬環境的文件夾,用以安裝所需 Python libraries。
按一下 Terminal 右上方的垃圾桶。
現在我們需要切換至虛擬環境。
按一下 Cmd + Shift + P 開啟 Command Palette,並輸入和選擇「Python: Select Interpreter 」。
先按一下右上方的重新整理按鈕,然後選擇「Python 3.7.10 64-bit (‘.venv’: venv)」。
留意這個 Interpreter 的文件夾是「./.venv/bin/python」,即是我們在 .venv 文件夾裡的虛擬環境,千萬別選錯了。
再按 Cmd + Shift + P 開啟 Command Palette,並選擇「Python: Create Terminal」。
留意左下方,藍色的條上顯示「Python 3.7.10 64-bit (‘.venv’: venv)」,即是我們已經選擇了剛建立的虛擬環境。
完成開啟後,您應該如下圖版見到 (.venv) user@computer vscode-example %
的字眼,代表我們已經選取了虛擬環境了。
第 3 步:在虛擬環境安裝 Python libraries
警告 ⚠️:請先完成第 2 步的設置,並確認已選擇在編程專案文件夾的虛擬環境。
現在我們可以在虛擬環境安裝所需的 Python libraries。重點是:使用了虛擬環境後,我們應該擁有一個獨立於其他專案(Project)的 Python libraries 安裝列表。
首先我們檢查是否以選擇虛擬環境。如下圖黃色框,我們應該見到「.venv」等的字眼。
在 Terminal 輸入以下指令,在虛擬環境安裝 pandas 和 plotly:
pip install pandas plotly
完成後,我們在 Terminal 輸入以下指令:
pip freeze
這指令讓我們可以列舉全部在這個虛擬環境下已經安裝的 Python libraries。我們可以見到有 pandas、plotly 以及其他支援這 2 個 Library 所需的部件。
(可略過)比對系統環境的 Python libraries
完成以上步驟後,我們在 Mac 開啟新的 Terminal.app(可以在 Launchpad 找「Terminal」),並輸入以下指令:
pip3 freeze
上圖顯示系統的環境裡沒有我們剛在 .venv 虛擬環境安裝的 pandas 與 plotly。
由此可見,虛擬環境讓我們可以分割每個 Python 專案的 Python 設定(如 Python 版本和 libraries),從而避免把不同專案所需的 libraries 混淆。
重置或移除虛擬環境
如果我們安裝了錯的 Python Library,希望重置虛擬環境怎麼辦?
其實我們只要直接移除虛擬環境的檔案夾(例如 .venv)便可以。我們在 Python Terminal 輸入以下指令:
rm -rf .venv
指令完成後,您會發現在 root directory 的 .venv 檔案夾消失了,而您可以從以上第 2 步開始建立一個新的虛擬環境。
下一步
恭喜您已經學會設立一個新的虛擬環境,讓您的 Python 編程擁有良好的專案管理(Project management)。下一篇教學我們會開始在 VS Code 學習 Python 編程,包括使用 Terminal 運行我們的代碼和在 VS Code 使用 Jupyter Notebook。
其他 VS Code 文章:
- VSCode 1/5: macOS 最佳 Python 編程工具?豐富的插件商店?Visual Studio Code 安裝攻略
- VSCode 3/5: 實戰篇!版面介紹、管理 Python 專案和多個 .py
- VSCode 4/5: 讓 pip 安裝和管理 Python Libraries,結合虛擬環境!
- VSCode 5/5: Jupyter Notebook 互動編程?實在太方便了
- macOS 安裝多個 Python 版本?pyenv 配合 VS Code 教學
如果您想了解更多有關虛擬環境的資訊,可以瀏覽這個有關虛擬環境的描述:https://code.visualstudio.com/docs/python/environments