在VSCode中編寫Python程式時,由於有些地方要使用環境變數,但是發現設置的環境變數有時不起作用,花了點時間研究了一下,過程不表,直接說結論。 首先,環境變數的設置,Python擴展中有三種方式: 其次,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。