VSCode的Python擴充套件下程式執行的幾種方式與環境變數管理
阿新 • • 發佈:2018-12-12
在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
其次,VSCode的Python擴充套件有四種程式執行方式,針對不同的執行方式,起作用的環境變數分別如下:
- Debug以上三種方式設定的環境變數都會生效,VSCode會按照上面列出的順序依次讀取環境變數(即重名變數後面的生效)。
- pylint 等後臺任務 (包括執行測試和除錯測試)只有第1種和第3種方式設定的環境變數生效,讀取順序同上。
- 右鍵檔案-->在終端執行 或 選中程式碼,右鍵-->在Python終端執行只有第1種和第2種方式設定的環境變數生效,讀取順序同上。
- 執行測試和除錯測試(只分析了pytest)同2。