在VS Code中進行遠程Python開發

今天在PyCon 2019大會上,微軟的Python和Visual Studio Code團隊宣布了在Visual Studio Code中進行遠程開發這一功能,這讓Visual Studio Code開發者可以遠程地在運行在docker容器、遠程SSH主機和Linux的Windows 子系統中的開發設置環境中運行他們的代碼和工具,而你仍然可以在本地獲得豐富和無縫的用戶體驗。

這項支持目前在Visual Studio Code內部構建版本中是可用的,并由Visual Studio Code市場中的三個新遠程擴展啟用:

  • Remote-Containers: 在本地docker容器內運行的工作區中進行開發
  • Remote-SSH: 通過一個SSH連接來在運行在遠程主機上的工作區中進行開發
  • Remote-WSL: 在Windows中的Linux子系統內運行的工作區中進行開發

要開始下載這個遠程擴展包,請查看Visual Studio Code Remote文檔,然后立即開始! 快速查看下面的視頻進行瀏覽,并繼續閱讀了解更多!

能夠使用WSL和遠程Python解釋器一直是我們的Python Extension GitHub頁面上請求最多的特性。我們從Python用戶那里聽說了許多需要在遠程工作區中工作的不同原因: 在使用SSH的情況下,他們的代碼需要訪問大量數據、計算、GPU或其他資源; 使用Docker時,他們需要能夠在具有復雜依賴關系的開發環境之間進行創建和切換; 使用WSL時,他們可能需要只適用于Linux環境的工具和包。

通過遠程開發,我們已經使用遠程Python解釋器和其他工具啟用了所有這些場景及其他場景: Visual Studio Code的UI運行在你的本地機器上,并連接到一個遠程托管你擴展的遠程服務器。這也啟用了自動補全、調試、終端、源代碼控制、安裝擴展等功能,幾乎Visual Studio Code中的所有內容都可以在遠程機器上無縫運行,你就像在本地開發工作區工作一樣。

遠程Docker工作區和Dev容器

Docker容器是創建可重用開發環境的一種流行方法,你無需在本地機器上安裝復雜的依賴項。這還允許新的團隊成員通過安裝docker并在Visual Studio Code中打開你的工作區來復制你的環境。

“Remote - Containers”擴展允許Visual Studio Code使用dev容器的概念在此開發環境中無縫運行。Dev容器由一個.devcontainer文件夾中的文件定義,它會告訴Visual Studio Code如何為該工作區創建一個Docker環境。你可以使用一個Dockerfile來創建一個單個容器或一個運行多個容器的docker-compose.yml。

要開始在docker容器中進行開發,請運行Remote-Containers: Open Folder in Containers…命令,然后瀏覽到本地機器上的一個文件夾。如果在工作區根目錄中找到一個.devcontainer文件夾,Visual Studio Code將使用現有的dev容器定義來創建該dev容器。

如果容器定義不存在,系統將提示你為該工作區創建一個新的dev容器。我們為Python開發人員提供了內置定義,讓你可以從Python 2/3、Python3+Postgres、Miniconda和Anaconda開始:

在VS Code中進行遠程Python開發

一旦你打開一個dev容器,Visual Studio Code將創建該docker鏡像,然后安裝一個輕量級遠程服務器,瞧,你現在就可以在dev容器中編碼了! 遠程服務器允許Visual Studio Code遠程地運行擴展,這樣幾乎所有的功能都會像在本地環境中一樣工作。

你的文件是以卷掛載到容器中的,所以你可以打開文件,開始編輯代碼,并獲得智能感知和自動完成:

在VS Code中進行遠程Python開發

你可以開始調試,設置斷點,并逐步運行代碼:

在VS Code中進行遠程Python開發

你可以在Python互動窗口中運行單元格和查看圖形輸出:

在VS Code中進行遠程Python開發

并且當你打開終端時,你使用的是容器內的終端!

在VS Code中進行遠程Python開發

除了創建和使用dev容器定義,你還可以使用Docker擴展,并在一個容器上右擊,選擇Attach Visual Studio Code來將Visual Studio Code附加到任何運行的docker容器上:

在VS Code中進行遠程Python開發

當附加到一個現有容器時,你可能會丟失Visual Studio Code使用的一些依賴項,因此如果你遇到問題,請檢查我們的vscode-dev-containers 倉庫中的示例容器定義,以便將依賴項添加到你的Dockerfile。

如果你想返回到正常的本地視圖,你可以運行Remote-Containers: Reopen Folder Locally命令。你的所有更改都將通過一個卷掛載驅動器保存到你的工作區,因此可以在本地視圖中使用。

遠程 SSH 工作區

Python開發人員的另一個常見設置是,他們的開發環境運行在遠程機器上,這通常是因為遠程機器可以訪問本地機器上不可用的資源或數據集。與docker場景類似,你可以使用“Remote-SSH”擴展在一個SSH連接上打開遠程工作區。

開始之前,首先確保你可以從命令行ssh到遠程機器,然后運行Remote-SSH: New Window命令,并輸入你的目標ssh主機:

在VS Code中進行遠程Python開發

如果你配置了SSH主機,它們將隨時在遠程SSH活動欄可用,以便輕松連接:

在VS Code中進行遠程Python開發

Visual Studio Code將重新打開,然后在SSH主機上安裝遠程服務器。然后,你可以在這個遠程機器上打開一個文件夾:

在VS Code中進行遠程Python開發

然后你就可以立即開始編輯和調試代碼了! 在這種情況下,任何源代碼都不需要是本地的,所有編輯和調試功能都由遠程服務器提供。

在VS Code中進行遠程Python開發

遠程WSL 工作區

Linux的Windows子系統允許你運行Windows中運行的本機Linux bash shell,類似于其他場景。“Remote-WSL”擴展允許Visual Studio Code UI在你的windows桌面運行,而Visual Studio Code 遠程服務器則在Linux子系統中運行擴展。

要開始使用Remote WSL,請運行Remote-WSL: New Window命令:

在VS Code中進行遠程Python開發

然后,它將安裝Visual Studio Code遠程服務器,并為你提供一個運行在WSL上下文中的新的Visual Studio Code窗口。

你可以點擊Open Folder...,它會允許你在這個Linux文件系統中打開一個文件夾:

在VS Code中進行遠程Python開發

或者,你可以通過從wsl提示符輸入“code-insiders .”命令來直接在WSL中打開一個文件夾。

然后,你就可以像在其他遠程開發環境中一樣來創建文件、編輯代碼、打開WSL終端和進行調試:

在VS Code中進行遠程Python開發

現在開始吧

我們對這次更新為Python開發人員在Visual Studio Code中解鎖的功能感到興奮,要使用這些功能,請查看Visual Studio Code Remote文檔,并/或試用我們的一些示例應用程序:

  • Python hello world 示例
  • 推特應用程序: Django + Postgres
  • Anaconda 容器

請記得在我們的vscode-remote-release GitHub頁面上提交問題,讓我們知道關于遠程擴展的任何問題或反饋。

注:我這有個學習Python基地,里面有很多學習資料,感興趣的+Q群:895817687

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容