Last Updated on 2022-03-14 by Clay
最近我將一些私人環境搬遷到 VS Code 上面去了,但是這之中碰到一個小問題:VS Code 預設支援的 Python 語法解析是基於全域環境,而我則習慣在每個不同的 Python 專案中啟用不同的虛擬環境。
這會發生什麼問題呢?簡單來說,假設我今天在 A 專案裡頭安裝了 gdown
套件,然而在全域環境中卻沒有安裝,那麼,一但我想要使用 gdown
中相關函式的自動補齊,VS Code 就會去抓全域環境中的 gdown
,然後告訴我當前工作環境中根本沒有 gdown
。
不過實際上,VS Code 編輯器是支援從 Python 虛擬環境中的依賴去解析的,畢竟所謂的 Python 虛擬環境,實際上只是在一個特定位置儲存著獨立直譯器(interpreter)以及複數安裝的函式庫與套件。VS Code 只需要將用於解析的全域設定路徑,轉成我們建立的虛擬環境的目錄即可。
啟用虛擬環境方法
而啟用的方法說穿了並不複雜,如果你的專案裡還沒啟用虛擬環境,則直接建立虛擬環境即可;但我因為專案內早已經有相關的虛擬環境資料夾 venv
,所以最快的方式就是 —— 重新建立一個一模一樣的虛擬環境。
如果你的專案中沒有建立任何虛擬環境,可以從 Step 1 開始操作。
Step 0: (optional) 備份虛擬環境資料
pip3 freeze > requirements.txt
Step 1: 安裝 VS Code 的 Python 擴充
如果安裝過了,可以跳過這一步。打開側邊欄的 Extensions,搜尋 python 並安裝。
Step 2: 建立虛擬環境
首先開啟 VS Code 並開啟專案(需要開啟 VS Code 才會偵測到新的環境),接著打開終端機,不論是使用外部的終端機還是 VS Code 編輯器的終端機欄位都可以。
來到你的專案目錄的最上層,然後使用以下指令建立虛擬環境(可以參考 https://docs.python.org/3/tutorial/venv.html):
python3 -m venv venv
source venv/bin/activate
接著你應該會看到 VS Code 的右下角跳出:
選擇 Yes,你當前開啟的專案程式碼就會以虛擬環境來解析,就不會出現找不到套件的情況了。
如果你需要將原本備份好的工作環境環境,可以使用以下指令:
pip3 install requirements.txt
以我為例,會發現 gdown
套件在專案中,從『警告』變成了正常的顏色,說明 VS Code 已經從虛擬環境中抓到了該套件。
References
- https://code.visualstudio.com/docs/python/environments
- https://code.visualstudio.com/docs/python/python-tutorial