1. 程式人生 > >VS Code配置多Python版本執行環境

VS Code配置多Python版本執行環境

正兒八經開始使用的第一個編輯器就是VS Code,所以基本沒怎麼用過Sublime,比較是無從談起,不過VS Code用起來真是順手啊。配置好的話,直接在VS Code裡面進行Python開發、除錯,完全不是問題。
不過使用Python難免需要用到多個Python版本,講一下如何在VS Code中進行配置。

系統中Python多版本管理

之前一直用Anaconda,直接用conda建立並管理多版本Python。最近用著總出現一些莫名其妙的問題,於是解除安裝了直接換回了官方“純淨版”。
在預設使用Python3.5的情況下,系統中環境變數指向Python3.5,同時在(假如)“C:\Python27”目錄下裝有Python2.7。可以在Python3.5的根目錄中建立名為py2.bat的檔案,檔案內容:

@ echo off
C:\Python27\Python.exe %*

這樣直接在命令列中輸入py2就可以使用Python2.7開發環境,輸入Python則是預設的Python3.5開發環境。檔名稱py2可以更換成個人習慣的名稱,命令列中輸入相應名稱即可1
安裝第三方庫的話,以下命令安裝到預設Python開發環境:

pip install somelib

安裝到Python2開發環境:

py2 -m pip install somelib

VS Code配置Python開發環境

使用VS Code開啟一個資料夾,這個資料夾在VS Code中便是一個工作空間

。VS Code會在資料夾中自動建立一個.vscode資料夾,裡面是一些配置檔案。

vscodesetting

.vscode中有一個tasks.json檔案,這個檔案就是進行配置執行環境的,最簡單和常用的配置為2

{
    "version": "0.1.0",
    "command": "python",
    "isShellCommand": true,
    "args": ["${file}"],
    "showOutput": "always"
}

其中commandpython可執行檔案的路徑,在新增的系統環境變數中之後可以直接寫python,否則需要給出完整路徑。args就是command

執行的引數,即當前檔案。
在安裝上述方法配置了Python雙版本執行環境後,對tasks.json進行簡單修改就可以了:

{
    "version": "0.1.0",
    // 在Linux和Mac系統中使用"sh".
    "command": "cmd",
    "isShellCommand": true,
    // global args
    // 在Linux和Mac系統中使用"-c"(注意大小寫).
    "args": ["/C"],
    "showOutput": "always",
    "suppressTaskName": false,
    "tasks": [
        {
            "taskName": "py2",
            // task args
            "args": ["${file}"],
        },
        {
            "taskName": "python",
            "args": ["${file}"]
        }
    ]
}

注意suppressTaskName屬性,VS Code官網上的解釋為:

If suppressTaskName is true, the command line is command 'global args' 'task args'.
If suppressTaskName is false, it is command 'global args' taskName 'task args'.

也就是說,當把suppressTaskName = false的時候,taskName屬性也被當做command line的引數傳入了。因此,當選擇不同的task的時候,相當於在命令列(或終端)中執行了相應的py2 file.pypython file.py。效果相當棒。
F1輸入run task,選擇py2

runtask

choosetask

扯淡

在VS Code中有這種配置Python多版本執行環境的需求應該不多吧……
一般進行專案開發,要麼Python2要麼Python3,很少沒事在Python2、Python3之間切換。我是偶然間瞎折騰才有了這麼個需求……(⊙ˍ⊙)

  1. 參考 ART^{9}一篇文章
  2. 參考 xin053一篇文章