今天在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開始:
一旦你打開一個dev容器,Visual Studio Code將創建該docker鏡像,然后安裝一個輕量級遠程服務器,瞧,你現在就可以在dev容器中編碼了! 遠程服務器允許Visual Studio Code遠程地運行擴展,這樣幾乎所有的功能都會像在本地環境中一樣工作。
你的文件是以卷掛載到容器中的,所以你可以打開文件,開始編輯代碼,并獲得智能感知和自動完成:
你可以開始調試,設置斷點,并逐步運行代碼:
你可以在Python互動窗口中運行單元格和查看圖形輸出:
并且當你打開終端時,你使用的是容器內的終端!
除了創建和使用dev容器定義,你還可以使用Docker擴展,并在一個容器上右擊,選擇Attach Visual Studio Code來將Visual Studio Code附加到任何運行的docker容器上:
當附加到一個現有容器時,你可能會丟失Visual Studio Code使用的一些依賴項,因此如果你遇到問題,請檢查我們的vscode-dev-containers 倉庫中的示例容器定義,以便將依賴項添加到你的Dockerfile。
如果你想返回到正常的本地視圖,你可以運行Remote-Containers: Reopen Folder Locally命令。你的所有更改都將通過一個卷掛載驅動器保存到你的工作區,因此可以在本地視圖中使用。
遠程 SSH 工作區
Python開發人員的另一個常見設置是,他們的開發環境運行在遠程機器上,這通常是因為遠程機器可以訪問本地機器上不可用的資源或數據集。與docker場景類似,你可以使用“Remote-SSH”擴展在一個SSH連接上打開遠程工作區。
開始之前,首先確保你可以從命令行ssh到遠程機器,然后運行Remote-SSH: New Window命令,并輸入你的目標ssh主機:
如果你配置了SSH主機,它們將隨時在遠程SSH活動欄可用,以便輕松連接:
Visual Studio Code將重新打開,然后在SSH主機上安裝遠程服務器。然后,你可以在這個遠程機器上打開一個文件夾:
然后你就可以立即開始編輯和調試代碼了! 在這種情況下,任何源代碼都不需要是本地的,所有編輯和調試功能都由遠程服務器提供。
遠程WSL 工作區
Linux的Windows子系統允許你運行Windows中運行的本機Linux bash shell,類似于其他場景。“Remote-WSL”擴展允許Visual Studio Code UI在你的windows桌面運行,而Visual Studio Code 遠程服務器則在Linux子系統中運行擴展。
要開始使用Remote WSL,請運行Remote-WSL: New Window命令:
然后,它將安裝Visual Studio Code遠程服務器,并為你提供一個運行在WSL上下文中的新的Visual Studio Code窗口。
你可以點擊Open Folder...,它會允許你在這個Linux文件系統中打開一個文件夾:
或者,你可以通過從wsl提示符輸入“code-insiders .”命令來直接在WSL中打開一個文件夾。
然后,你就可以像在其他遠程開發環境中一樣來創建文件、編輯代碼、打開WSL終端和進行調試:
現在開始吧
我們對這次更新為Python開發人員在Visual Studio Code中解鎖的功能感到興奮,要使用這些功能,請查看Visual Studio Code Remote文檔,并/或試用我們的一些示例應用程序:
- Python hello world 示例
- 推特應用程序: Django + Postgres
- Anaconda 容器
請記得在我們的vscode-remote-release GitHub頁面上提交問題,讓我們知道關于遠程擴展的任何問題或反饋。
注:我這有個學習Python基地,里面有很多學習資料,感興趣的+Q群:895817687