1. 程式人生 > >VSCode的Python擴充套件下程式執行的幾種方式與環境變數管理

VSCode的Python擴充套件下程式執行的幾種方式與環境變數管理

在VSCode中編寫Python程式時,由於有些地方要使用環境變數,但是發現設定的環境變數有時不起作用,花了點時間研究了一下,過程不表,直接說結論。

首先,環境變數的設定,Python擴充套件中有三種方式:

  1. 直接設定系統環境變數,或在使用命令列啟動VSCode時臨時先設定環境變數。這種方式設定的環境變數在所有的執行方式下起效,但由於多個工程所用的環境變數不同,每次設定太麻煩,使用bash指令碼或批處理我也覺得不爽,所以沒有采用。
  2. 通過 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, 
        },
    }
  3. 通過配置 python.envFile 選項。python.envFile 是一個絕對路徑,指向一個檔案,預設為工程目錄下的.env檔案,用於定義需要的環境變數,基本格式如下:
    # 註釋
    PYTHONPATH = D:\workspace\safe110\webapps
    PYTEST 
    = 111

其次,VSCode的Python擴充套件有四種程式執行方式,針對不同的執行方式,起作用的環境變數分別如下:

  1. Debug以上三種方式設定的環境變數都會生效,VSCode會按照上面列出的順序依次讀取環境變數(即重名變數後面的生效)。
  2. pylint 等後臺任務 (包括執行測試和除錯測試)只有第1種和第3種方式設定的環境變數生效,讀取順序同上。
  3. 右鍵檔案-->在終端執行 或 選中程式碼,右鍵-->在Python終端執行只有第1種和第2種方式設定的環境變數生效,讀取順序同上。
  4. 執行測試和除錯測試(只分析了pytest)同2。