最近在自学python,刚入门苦于不知道从何下手,也不知道用什么编辑器比较适合。在度娘上搜了十几款编辑器,最终决定用微软的vscode,这个编辑器可以配置Python、Java、C ++等编程环境,而且有非常强大的插件功能,界面看着也挺友好,写个日志记录下自己瞎捣鼓的配置。
本来是想在我的云服务器上装vscode,但是我的云服务器上没有可视化界面……于是在我的小破笔记本上安装了vscode,后来又发现有一个插件可以ssh连接上服务器,只要能ssh连接就可以直接调用服务器上事先安装好的各种python库,真香~
从头开始记录下使用方法和自己的设置
1. 下载vscode
vscode可以直接上官网下载(速度很慢,建议科学上网),选择自己的操作系统,我用的windows
一直下一步就可以了,唯一需要注意的是把vscode加入系统环境变量中(默认选项),安装以后能够在cmd命令行通过code打开说明就改了环境变量。当然也可以在系统环境变量的path中找到,这里不赘述
2. 插件下载
2.1 中文语言包
英文界面对于我这种小白太难了,所以打开软件第一件事就是安装中文插件,这个在左边拓展栏输入chinese直接可以找到(我这里已经装好了,只是演示记录一下)
2.2 ssh连接插件
因为我要远程调用服务器上的python库,所以我首先下载了SSH连接插件
安装以后点击右侧菜单栏的远程资源管理器,可以新建一个远程连接
按照正上方弹出的窗口提示,我们输入自己的用户账号和host地址,之后选择第一个选项,这样我们要连接的远程主机地址就被记录下来了。连接之后输入密码即可远程登录,每次登录都需要输入密码
连接以后可以选择打开文件夹,把根目录文件夹打开就可以调用远程服务器的所有文件了
看到终端成功显示欢迎界面,说明远程登陆成功,终端可以输入和执行命令了
2.3 python拓展插件
远程登录只是第一步,接下来安装插件都是远程登录的窗口,安装在本地的插件一般不能用在远程登录窗口。我要搭建python环境,也是先安装python的拓展插件
2.4 AREPL插件
这个插件可以在右上角点开,实时打印出你写的python脚本运行结果,变量的赋值等等,还可以检查你写的脚本哪里出错而不需要直接运行代码。这个插件在写爬虫脚本的时候真的非常方便(后面的笔记再分享,写个简单的爬虫脚本就能体会),再也不需要点开网页审查各个元素了,直接在右边框里找到
举个栗子比如我写了个打印皮卡丘的python脚本(滑稽),我不用运行程序就能在右边看到代码运行的结果
3. 脚本调试
下载完插件,写完代码,我们首先要进行的就是代码调试,点击左侧菜单栏的 运行和调试 ,我们直接点击创建 launch.json文件
在弹出的正上方菜单栏选择第一个调试配置打开的python文件
本质上就是生成一个调试的json文件,不用太多了解,调试当前打开的文件就可以。也可以根据自己需要改成只调试指定名称的python脚本,改的就是红框里的部分
在脚本页面直接按F5就可以运行了,可以在代码的行号前设置红色的断点,用来分段测试代码,在写的代码比较多需要一段段检查错误的时候会比较有用。比如我在上面的皮卡丘脚本的第12行设置一个断点,再按F5运行脚本,就会从第一行报错(因为print函数被断点隔开了),右边是AREPL插件的输出结果,不受代码运行与否和断点的影响,所以能正常显示
我们同时也能看到右下角是bug调试区,也就是说我们在调试区运行程序,会自动给我们分配一个debug控制区的终端,我也可以同时在上面的bash区终端运行别的程序。
4. 格式化文档
这几天自学过程中我也发现,python代码是有严格的缩进要求的,不像是linux系统中的shell语言,一行写完可以在另一行随便插几个制表符继续写下一个命令。python严格按照冒号和缩进来区分代码块之间的层次,在 Python 中,对于类定义、函数定义、流程控制语句、异常处理语句等,行尾的冒号和下一行的缩进,表示下一个代码块的开始,而缩进的结束则表示此代码块的结束。哪怕有一个多余的缩进量,就会系统报错
在赋值前后,运算符前后,#号注释之后等一些不用区分代码块层次的地方,python对空格要求却不是那么严格。虽然要求不严格,但是不小心手滑多打了或者少打了空格总归影响美观(我真的有强迫症),这个时候可以用右键的格式化文档功能,一键自动改成标准格式
比如上面这个丑不拉几的程序虽然能跑出来结果,但是强迫症看完会当场去世。这个时候可以用右键的格式化文档功能一键对齐,如下
如果点格式化文档显示的是要装autopep8拓展,那就点确认安装。这个功能就是靠autopep8这个软件实现的,但是这个拓展软件是靠pip安装的,有的人没有安装pip,或者有的人(比如我)pip有问题,一直显示ssl证书不能获取拒绝安装,改pip源也无法解决问题(又是套娃解决问题的一天),就要去github下载autopep8本地安装,更改环境变量才可以使用。也可以用conda直接一步安装,不得不说conda管理python环境变量是真的香
格式化文档也不是万能的,比方说我在父目录下封装了一个函数,我想在子目录下调用,vscode有一个缺点就是需要把当前目录加到环境变量里,然后才能调用我封装好的函数,但是!添加环境变量之后再调用,这个时候运行格式化文档的功能,系统会自动把调用模块排在添加环境变量步骤之前,因为软件的设计就是把调用模块一定放在第一位。
打个比方,我在父目录demo下封装了printpikaqiu()这个函数,这个函数作用是打印皮卡丘。文件目录如下
然后我在子目录test下调用,就需要先拓展环境变量再调用,代码如下图,f5运行没毛病,打印出一只皮卡丘:
但是右键格式化文档之后,代码直接变了,再运行直接红色的报错跳脸上
因为代码顺序改了,没有添加环境变量,找不到父目录demo怎么可能调用pikaqiu模块呢?这就非常尴尬了
因此在调用自己封装的函数和模块的时候,不要用格式化文档。现在暂时还没找到可靠的解决方法
5. 其他设置
vscode主菜单栏 文件—首选项 底下有非常多非常详细的设置选项,而且可以不同设备进行同步,这个是其优点之一。并且可以通过ctrl + shift + p 快速打开设置,支持直接修改配置的json文件,这个暂时还没用到,我只是改了个字体大小,以后有重要修改的时候再做记录,方便后续查看。
顺便提一嘴,我的云服务器是安装了anaconda管理python环境的,用vscode远程ssh登录云服务器后,仍然可以在右下角选择我用anaconda安装的各个版本python,依然是一键切换环境,真的太方便了。之前没用编辑器码代码,每次都要在linux里通过vim码好保存退出,再运行。。。各种意义上的身心折磨。。。
现在就一个字,香!