VSCode的Python擴充套件下程式執行的幾種方式與環境變數管理
在VSCode中編寫Python程式時,由於有些地方要使用環境變數,但是發現設定的環境變數有時不起作用,花了點時間研究了一下,過程不表,直接說結論。
首先,環境變數的設定,Python擴充套件中有三種方式:
-
直接設定系統環境變數,或在使用命令列啟動VSCode時臨時先設定環境變數。
這種方式設定的環境變數在所有的執行方式下起效,但由於多個工程所用的環境變數不同,每次設定太麻煩,使用bash指令碼或批處理我也覺得不爽,所以沒有采用。 -
通過
terminal.integrated.env.windows /
terminal.integrated.env.linux /
terminal.integrated.env.osx
選項配置。
選項的格式是字典,鍵和值都必須是字串,具體格式:
{ "terminal.integrated.env.windows": { "ENVIRON_VARIABLE": "The Variable value", "VAR2": "111", // 下面沒加引號的是錯的,不會生效 //"VAR3": 111, }, }
-
通過配置 python.envFile 選項。
python.envFile 是一個絕對路徑,指向一個檔案,預設為工程目錄下的.env檔案,用於定義需要的環境變數,基本格式如下:
# 註釋 PYTHONPATH = D:\workspace\safe110\webapps PYTEST = 111
其次,VSCode的Python擴充套件有四種程式執行方式,針對不同的執行方式,起作用的環境變數分別如下:
-
Debug
以上三種方式設定的環境變數都會生效,VSCode會按照上面列出的順序依次讀取環境變數(即重名變數後面的生效)。 -
pylint 等後臺任務 (包括執行測試和除錯測試)
只有第1種和第3種方式設定的環境變數生效,讀取順序同上。 -
右鍵檔案-->在終端執行 或 選中程式碼,右鍵-->在Python終端執行
只有第1種和第2種方式設定的環境變數生效,讀取順序同上。 -
執行測試和除錯測試(只分析了pytest)
同2。