之前的文章我们介绍过微软的的开源战略,其中重要的一部分就是开源的IDE项目Visual Studio Code(VSC)。在PyCon 2019大会上,微软VSC团队和Python团队宣布发布VSC的Python远程开发组件,实现在VSC中远程连接docker容器、SSH连接服务,以及远程连接Windows WSL Linux子系统实现无缝Python开发。本文虫虫就给大家介绍一下这个远程开发插件。

概述

vscod远程连接服务器怎么运行python vscode远程开发python_Code

通过远程开发组件使用远程Python解释器和扩展等基础开发环境,然后通过Visual Studio Code的UI提供界面进行开发,实现自动补全、调试、终端界面、源代码控制,扩展安装等功能,VSC的所有功能都可以使用,并无缝连接到远程计算机上的语言环境,实现和本地开发一样的体验。

安装

目前远程开发插件只支持在Visual Studio Code Insiders中可用,由VSC应用市场的三个扩展安装使用:

Remote-Containers:在本地docker容器内工作空间中开发;

vscod远程连接服务器怎么运行python vscode远程开发python_Code_02

Remote-SSH:通过SSH远程连接服务器上的工作空间中进行开发;

vscod远程连接服务器怎么运行python vscode远程开发python_Visual_03

Remote-WSL:通过Windows子系统LinuxWSL中运行的工作空间中开发。

vscod远程连接服务器怎么运行python vscode远程开发python_Code_04

首先要下载安装Visual Studio Code Insiders,然后下载安装Remote Development扩展包。

vscod远程连接服务器怎么运行python vscode远程开发python_vscode远程调试python_05

Remote-Containers连接Docker工作区及Dev容器

Docker容器是时下建立可重现的开发测试环境的最便捷最流行的方式。通过docker方式,本地计算机不需要安装安装任何环境和依赖包,通过容器方式建立互不影响的运行环境,也能通过镜像包保存和共享所有环境,是解决依赖问题的神器,其他人通过镜像可以一键重现你的环境。

Remote-Containers扩展允许Visual Studio Code使用dev容器的概念建立一个开发环境,并无缝对接工作。。 dev容器由.devcontainer文件夹中的文件定义,该文件定义所有创建的Docker的所有参数,可以通过Dockerfile创建单个容器或用docker-compose.yml实现多容器环境。

要使用docker容器中开发,在VSC中按F1,输入Remote-Containers Remote-Containers命令,并浏览到docker定义的文件夹。如果当前工作空间根目录中找到.devcontainer文件夹,会使用dev容器定义创建dev容器。如果容器定义不存在,系统会提示为该工作空间创建新的开发容器。VSC内置了Python镜像,可以一键创立Python 2/3,Python3+Postgres,Miniconda和Anaconda的开发环境

vscod远程连接服务器怎么运行python vscode远程开发python_Code_06

如上图,选择一个开发容器,VSC将自动创建docker镜像,然后安装一个轻量级的远程服务器,然后就可以在dev容器总进行开发。远程服务器允许Visual Studio Code远程运行Python扩展,所有功能都可以像在本地环境中一样工作。

文件文件已安装到容器中,可以直接打开,进行编辑代码,并且实现IntelliSense和自动补全功能:

vscod远程连接服务器怎么运行python vscode远程开发python_vscode远程调试python_07

可以对代码进行调试、设置断点并逐步执行,就像是对本地文件调试一样

vscod远程连接服务器怎么运行python vscode远程开发python_Visual_08

可以在Python Interactive窗口中运行执行并查看输入结果:

vscod远程连接服务器怎么运行python vscode远程开发python_Python_09

也能cell执行,打印图形:

vscod远程连接服务器怎么运行python vscode远程开发python_Python_10

打开在标签页terminal业,可以使用容器的命令行。

vscod远程连接服务器怎么运行python vscode远程开发python_Python_11

使用Docker扩展并右键单击容器并选择Attach Visual Studio Code,可以将VSC添加到关联到任何正在运行的Docker容器,这样就不需要从新创建和使用dev容器了:

vscod远程连接服务器怎么运行python vscode远程开发python_vscode远程调试python_12

当然关联现有容器时,可能会缺少VSC某些依赖项,会导致关联出现问题,这是请参考官方的vscode-dev-containers repo中的实例的定义,添加必须的Dockerfile的依赖项就行。

如果要返回到正常的本地视图,可以运行Remote-Containers:Reopen Folder Locally命令。所有变更都会通过卷装驱动器保存到工作区,因此可以在本地视图中使用。

Remote-SSH链接到远程服务器

Python开发人员常用开发方式中就是开发环境位于远程服务器上,这时候就需要通过"Remote-SSH"扩展来实现SSH连接打开远程开发环境,并在VSC本地进行开发。

要使用Remote-SSH,要确保可以从Windows命令SSH到远程计算机,然后运行F1,输入Remote-SSH:New Window并输入希望定位的SSH主机。注意要实现该功能需要在路径中设置SSH客户端,同时Windows下的SSH客户端还不支持Putty客户端。

vscod远程连接服务器怎么运行python vscode远程开发python_Python_13

Visual Studio Code将重新打开,然后在SSH主机上安装远程服务器扩展。然后,可以在远程计算机上打开一个文件夹:

vscod远程连接服务器怎么运行python vscode远程开发python_vscode远程调试python_14

然后就编辑和调试代码了。在该方法下源代码都不是本地的。所有编辑和调试功能都由远程服务器提供。

vscod远程连接服务器怎么运行python vscode远程开发python_Python_15

Remote-WSL连接WSL工作区

最后是"Remote-WSL"扩展,它允许VSC UI在Windows桌面上运行,而VSC的远程服务器在Windows Linux子系统内运行扩展。

要开始使用Remote WSL,请F1,运行Remote-WSL:New Window命令:

vscod远程连接服务器怎么运行python vscode远程开发python_Code_16

该命令执行后,会自动安装VSC远程服务器,并为在WSL上下文中运行的VSC窗口。

或者可以通过键入"code-insiders"从wsl提示符直接在WSL中打开文件夹。

然后,可以像其他远程开发环境一样创建文件,编辑代码,调试,打开WSL终端等操作:

vscod远程连接服务器怎么运行python vscode远程开发python_Python_17

总结

本文给大家介绍了在VSC中通过远程开发组件进行远程连接开发环境的方法,和其他方法相比较(比如Jupyter),该方法由于使用了VSC组件和扩展更加适合开发人员使用,实现最佳的开发体验,当然由于该组件还处于Priview阶段,仅供大家尝鲜使用,不建议在生产环境中使用。