使用vscode打造python开发环境

 1. 各位看客,因为本人写的文章,有时候会修改,以便变得更好,更优秀,所以当你看到文章中前后有一些不对应的地方,那说明我正在大幅度修改。我一般会在一天内完成本次的修改。

 2. 新增一个 vscode 远程开发,使用远程服务器上的 python 开发环境。在第 19 条那里。

 

1. 安装 python 解释器,配置好 path 变量。

下载网址:https://www.python.org/downloads/release/python-374/

注意区分 64 位还是 32 位的。

安装 python 的时候,建议将 python 添加到 path 环境变量的复选框勾上,并且使用自定义安装,因为可以自定义安装目录,我是安装在 C:\Python37 中的

 

2. 安装 virtualenv

win+R 输入 cmd 后点确定,然后执行:

pip install virtualenv

 

3. 下载并安装好 vscode 编辑器(安装时,将复选框全部勾上)

下载地址:https://code.visualstudio.com/

4. 在 vscode 中安装 python 插件

按下快捷键 Ctrl+Shift+X,进入插件管理页面
在搜索框中搜索 python 关键字
点击下载量最高的那个进行安装,一般都是第一个。

vscode 安装了上面这个插件后,能干什么?

第一:这个插件不是 python 语言的解释器,vscode 想要运行 python 代码,必须另外指定在 windows 上安装的 python 解释器路径才可以。

第二:这个插件被安装上后,vscode 就具有了调用 python 解释器的功能。其实就是在 setting.json 和 launch.json 这两个配置文件中,可以添加 python 相关的配置了,比如通过 python.pythonPath 的值找到 python 解释器的位置等等。

第三:可以通过按下 ctrl 键,点击函数,打开函数的所在文件和定义位置。

第四:具有代码提示功能。

(这样解释是不是有点傻?)

5. 准备一个项目并用 vscode 打开

第一步:创建一个总项目目录

D:\CodeProjects

第二步:创建一个 python 总项目目录

D:\CodeProjects\PythonProjects

第三步:创建一个测试项目目录

D:\CodeProjects\PythonProjects\opms

第四步:在指定项目中创建 python 虚拟环境

win+R 输入 cmd 后点确定,依次执行下面三条命令:(-p 后面的参数,可以换成其它 python 解释器的路径)

D:
cd D:\CodeProjects\PythonProjects\opms
virtualenv .venv -p "C:\Python37\python.exe"

 

第五步:右击 opms 项目目录,使用 vscode 打开(一般情况下,一个 vscode 界面只能打开一个项目目录)

6. 为项目运行时指定特定的 python 解释器

第一步:为新打开的项目生成 setting.json 配置文件

按下快捷键 ctrl+shift+p,输入 interpreter,单击筛选出来的结果“Python: Select Interpreter",就会跳出 windows 系统上已经安装的所有 python 解释器,我们这里随便选择一个即可,因为我们之后会自定义 setting.json 配置文件中的值,这一步只是为了生成 setting.json 这个配置文件。

补充:你如果和我一样,在打开项目之前已经在项目中创建了 python 虚拟环境,那么在选择 interpreter 时,vscode 也会将本项目目录下的虚拟环境中的 python 解释器也列出来,此时,你可以直接选择这个解释器即可。

第二步:修改 setting.json 配置文件,指定 python.pythonPath 的值为 opms 项目目录下 python 虚拟环境中的 python 解释器路径

7. 为项目运行时指定入口文件和参数

第一步:为新打开的项目生成 launch.json 配置文件

点击 Debug,点击 Add Configuration,点击 Python,然后根据你的项目,在 Python File、Django、Flask 中选择一个,我这里只是为了说明,选择 Python File,你们请根据自己的项目类型的进行选择。

第二步:解释 launch.json 配置文件中 configurations 列表的作用

program这个键,用来指定项目运行时的入口文件的,其中 ${file} 表示当前文件,${workspaceFolder} 表示项目根目录,对于 django 项目来说,入口文件应该是项目根目录下的 manage.py 文件,所以可以配置为 "program": "${workspaceFolder}\\manage.py"。

args这个键,用来指定项目运行时,跟在入口文件后面的参数,对于 django 项目来说,运行参数应该是:runserver 0.0.0.0:8080 --noreload --nothreading  ,所以可以配置为:

"args":["runserver","0.0.0.0:8080","--noreload","--nothreading"] 。

name这个键,用来命名配置名称的,因为在 configurations 列表中可以定义多个配置,不同的配置命名要相互区分。

typerequest这两个键是必须项,在不同的配置中都要存在的,而它们的值也是固定的。"type": "python" , "request": "launch"。

8. 测试一下

在项目目录中,创建一个 test.py 文件,写入代码后,点击文件上方的绿色三角形按钮运行当前文件。

之所以能够点击按钮就可以运行当前文件,是因为我使用了 Python File 这个 configurations 运行配置,参数 "program": "${file}",表示当前文件。

有时候 vscode 会报错如下:

无法加载文件 D:\CodeProjects\PythonProjects\opms\.venv\Scripts\activate.ps1,因为在此系统上禁止运行脚本。

解决办法:

第一步:以管理员身份运行 powershell
第二步:执行:get-ExecutionPolicy,回复 Restricted,表示状态是禁止的。
第三步:执行:set-ExecutionPolicy RemoteSigned
第四步:选择 Y,回车。

9. 关于 python 虚拟环境的解释

python 虚拟环境是一个非常好用的东西,以前我以为只有 activate 激活这个虚拟环境,才可以使用这个虚拟环境中安装的各个模块。现在,我知道之前的认知是局限的。

其实,你只需要使用虚拟环境中的 python.exe 解释器的绝对路径就可以使用这个虚拟环境中安装的 python 模块了,根本不需要激活。不信的话,你试试:

比如我创建了一个 venv 虚拟环境:D:\CodeProjects\PythonProjects\opms\.venv\

然后,我运行下面的命令得到的模块列表和全局解释器中的模块列表是不一样的(此时我并没有激活这个虚拟环境):

D:\CodeProjects\PythonProjects\opms\.venv\Scripts\pip   list

当使用 activate 激活一个虚拟环境时,我们就从 cmd 或者 terminal 当前窗口中进入到了一个子窗口中了,在这个子窗口中,PATH 这个环境变量被临时更改了,当前这个虚拟环境中的 Scripts 路径就被加入到 PATH 环境变量中了,那么我们在这个子窗口中运行的 python 命令、pip 命令等也就通过 PATH 这个环境变量自动查找,然后指向了虚拟环境 Scripts 目录中的解释器了,这也就解释了为何激活了这个虚拟环境,在这个窗口中切换到任何一个目录中,执行 python 或者 pip 命令都能使用和查看这个虚拟环境的所有模块的原因。

10. 配置 django 项目的运行参数

一般我们运行 django 项目的命令是:   python manage.py runserver 0.0.0.0:8080

这个命令分为两部分,第一部分是 python 解释器,我们在 settings.json 设置,剩下的参数 manage.py runserver 0.0.0.0:8080 我们需要在 launch.json 中设置。

我粘贴出我在 launch.json 文件中设置的内容:

    "configurations": [
        {
            "name": "Python: Current File",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal"
        },
        {
            "name":"Python: Django",
            "type":"python",
            "request":"launch",
            "program":"${workspaceFolder}\\manage.py",
            "console":"integratedTerminal",
            "args":[
                "runserver",
                "0.0.0.0:8080",
                "--noreload",
                "--nothreading"
            ],
            "django":true
        }
    ] 

此时如果要运行 django 项目的话,方法如下:

点击左边栏目中的小乌龟,

点击齿轮图标旁边的下拉框,选择 Python: Django,

然后点击左边绿色三角形的运行按钮即可。

 

11. 配置 vscode 的文件图标和主题美化

按下快捷键 Ctrl+Shift+X,进入插件管理页面
在搜索框中搜索这两个插件并安装:Material Icon Theme 和 Son of Obsidian Theme
然后点击左下角的齿轮图标,选择并点击 File Icon Theme, 在出现的展示中,选择并点击 Material Icon Theme 即可。

 此时,我们就会发现我们的 python 文件的图标已经变成了经典的头尾相接的两条蟒蛇了。

 12. 安装运行代码片段插件 Code Runner(我已弃用它,原因在下面)

Code Runner 也称为万能语言运行环境,它可以让你不用搭建各种语言的开发环境, 直接通过此插件就可以直接运行对应语言的代码。我们这里使用这个插件,目的是为了运行代码片段,方面调试。

按下快捷键 Ctrl+Shift+X,进入插件管理页面,在搜索框中搜索 Code Runner,点击安装即可。

测试一下:

我们先选中一段代码,然后鼠标右击,选择 Run Code,如下:

 

 

 我们卸载掉这个插件吧。

经过测试,这个插件是使用系统 PATH 环境变量中配置的 python 解释器去运行代码片段的,并不能使用我们在 settings.json 文件中指定的 python 解释器,如下:

 

所以卸载掉它吧,我们 uninstall 这个插件后,有时候还需要点击这个插件旁边的 Reload Required 进行重载才能彻底清除这个插件,如下:

 当然,我们也找到了方法去解决这个解释器的问题,但又何必使用这个 Code Runner 呢?解决方法如下:

点击 File,点击 Preferences,点击 Settings,点击 Extensions,点击 Run Code configuration,点击 Executor Map 下方的 Edit in settings.json,在打开的 settings.json 文件中,添加:

"code-runner.executorMap",不要复制它,要自己敲击,根据提示回车后,会自动生成剩下的内容,如下:

然后我们需要更改其中的 python 键值,改为 "python": "C:\\Python27\\python.exe",大家参照这个,可以自行更改为其它的 python 解释器路径,比如虚拟环境中 python 解释器。

我们再运行 test.py 看下 python 解释器版本:

 

 我不推荐的原因是,如果反复的切换运行不同的项目,那么就需要反复的更改 settings.json 文件,比较麻烦,而我们一开始安装的 python 插件,只需要一次配置就可以了。

 

 13. 启用自动格式化代码工具 yapf

第一步:在项目指定的 python 解释器中安装 yapf 模块

cd D:\CodeProjects\PythonProjects\opms\.venv\Scripts
activate
pip install yapf
deactivate.bat

第二步:在项目中的 settings.json 配置文件中,添加:"python.formatting.provider": "yapf",如下:

第三步:按 Alt+Shift+F 即可自动格式化代码

 测试一下:

未经代码格式化之前的代码如下:

 按 Alt+Shift+F 后,代码如下:

14. 启用 pylint 进行代码编写时格式规范检查

第一步:在项目指定的 python 解释器中安装 pylint 模块

cd D:\CodeProjects\PythonProjects\opms\.venv\Scripts
activate
pip install pylint
deactivate.bat

第二步:启用 pylint 功能,在 settings.json 文件中添加:"python.linting.pylintEnabled": true,如下:

第三步:关于 pylint 检查项的一些定制

"python.linting.pylintArgs": ["--disable=C,broad-except,unused-variable",],
 
检查项按大类分,大约有四个:C、R、E、W,C 类应该是与变量、函数名等命名有关的规范,我们把 C 类检查全部禁用,E 类应该是检查模块、类、函数等是否存在,这个是最有用的,W 类应该是与声明的变量是否被使用、使用的异常捕捉类是否细化等检查相关,这个可以根据具体的情况具体禁用。R 类还不太清楚。
 
那么如何禁用具体的检查项呢?
首先,我们将鼠标停留在报出异常的代码上,如下:

 然后,就可以看到异常是 unused-variable 了,我们将这个异常检查项在 settings.json 中禁用掉即可。其它的异常检查项也是这么查看和禁用。

 

第四步:Django 项目需要安装额外的规范检查模块

pip install pylint_django

第五步:在 settings.json 配置文件中为 django 项目添加加载检查模块

"python.linting.pylintArgs": [
"--load-plugins",
"pylint_django",
],

 15. 记录一下 vscode 中的一些快捷键

终止程序运行:ctrl + `

侧边栏显示和隐藏:ctrl + B

格式化代码:Alt+Shift+F

格式化选中部分的代码:Ctrl + K Ctrl + F

打开 Git 可视管理:Ctrl + Shift + G

补充

格式化代码的快捷键用起来太麻烦了,将它更改为常用的 ctrl+alt+l(L 的小写)的方式。

按 ctrl+k  ctrl+s 打开快捷键修改的界面,搜索框中搜索 shift+alt+f,快速定位到要修改的快捷键:

修改完成后,如下所示,记得更换搜索关键词:

 

16. 新建 python 文件时自动添加头部信息

第一步:

点击 File,点击 Preferences,点击 User Snippets,输入 python,点击跳出来的 "python.json(Python)",在打开的 python.json 文件中,先清空文件原内容,然后添加:

请看:下面的内容,适合 python2,在 python3 中,请将 #!/usr/bin/python3( 或者用虚拟环境中的 python 解释器)和 #encoding:utf-8 替换对应位置的内容。

{
    "HEADER":{
        "prefix": "header",
        "body": [
        "#!/usr/bin/python",
        "# -*- encoding: utf-8 -*-",
        "'''",
        "@File    :   $TM_FILENAME",
        "@Time    :   $CURRENT_YEAR/$CURRENT_MONTH/$CURRENT_DATE $CURRENT_HOUR:$CURRENT_MINUTE:$CURRENT_SECOND",
        "@Author  :   DesignerA ",
        "@Version :   1.0",
        "@Contact :   DesignerA@qq.com",
        "@WebSite :   www.cnblogs.com/DesignerA",
        "'''",
        "# Start typing your code from here",
        "$0"
    ],
    }   
} 

第二步:

在新建的 python 文件开头输入 header,然后回车,就会自动出现上面定义的头部信息了 ( 我已经替换对应位置的内容为 python3 了),如下:

 

17.vscode 配置 git 管理代码

第一步:先到 git 官网下载并安装 windows 64 位版的 git,git 官网下载地址:https://git-scm.com/downloads,注意,安装 Git 的过程中,选择 VS Code 作为 git 的默认编辑器,其它都默认即可,如下图:

第二步:为 git 配置环境变量,默认情况下,git 被安装在 C:\Program Files\Git\ 目录下,我们需要将这个目录下的 bin 目录添加到 Path 环境变量中。如下图

 

第三步:设置 vscode 与 git 关联,依次打开:File -> Preferences  -> Settings  -> Extensions  -> Git  ->Path (Edit in settings.json)

在打开的 settings.json 文件中,配置 git 的可执行文件路径,如下:

//启用 git
"git.enabled": true, 
//启用自动刷新
"git.autorefresh": true,
//启用自动提取
"git.autofetch": true,
//同步前进行确认
"git.confirmSync": true,
//配置 git 可执行文件路径
"git.path":"C:\\Program Files\\Git\bin\\git.exe",
"terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe",

第四步:配置 git 用户名与邮箱(git 暂存时需要用到它们)

git config --global user.name "xxxxxxx"
git config --global user.email "xxxxxxx@qq.com"

第五步:在 github 上新建一个仓库,然后使用命令 git clone "仓库地址" ,将仓库克隆到本地目录中。 如果是私有仓库,这步执行后,会要求你输入 github 账户密码。

第六步:让 git 记住密码,这样不用每次都填写

git config --global credential.helper store

第七步:找到 git 下来的仓库目录,然后右击目录,选择使用 vscode 打开

第八步:你编辑这个项目中的文件后,你要先点击小勾暂存所有更改,输入你的提交消息(随便输点你本次提交的说明信息)

说明:这里的 commit 并不是提交到 github,而是提交到本地的暂存区,而且必须要先提交到本地的暂存区,之后才可以使用 push 将暂存区中的内容推送到 github 仓库中。

 第九步:将更改提交到 github 仓库中,从图中可以看到第八步执行完后,本次的更改已经写入到暂存区了。点击 Push 后,可以到 github 仓库中看下仓库中的内容是否已经更改

 

18.vscode 添加浏览器预览 html 代码功能

 第一步:按下快捷键 Ctrl+Shift+X,进入插件管理页面,搜索并安装插件 open in browser

 第二步:修改 vscode 预览 html 文件默认使用的浏览器,不修改的话,默认使用 IE。当然,这一步可以不执行,因为右击 html 文件的时候可以选择 Open In Other Browers

               依次打开:File -> Preferences  -> Settings  -> Extensions  -> plugin open-in-brower  ->Auto Complete: Extra Paths (Edit in settings.json) 然后在打开的 settings.json 配置文件中添加:

// 如果是火狐,就设置 firefox
"
open-in-browser.default": "chrome",

 19.vscode 利用远程服务器环境调试项目

这个还是很好用的,可以不需要在 windows 服务器上安装 python 执行环境了。而且,python 中的一些与系统操作相关的模块,windows 上安装起来也非常麻烦。

第一步:按下快捷键 Ctrl+Shift+X,进入插件管理页面,搜索并安装插件 Remote Development

第二步:windows 上安装 openssh 客户端,这里提供一个使用 powershell 安装的方法

首先,以管理员身份打开 powershell

然后,输入命令在线查询可获取的安装包 Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

最后,如果状态显示 NotPresent 的话,可以使用命令进行安装,命令为 Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

提示:随着 Windows 10 2018 年 4 月更新的发布,OpenSSH 客户端已正式推出并在 Windows 10 中默认安装。

补充:有些人的电脑系统可能是 windows7 的,这里再提供一个在 windows7 上安装 openssh 客户端的方法

首先,下载 cygwin,下载网址为: https://www.cygwin.com/

 

然后,安装它,安装过程中,当出现选择要安装的包时,我们将 View 切换为 Full,并在搜索框中搜索 openssh,在出现的搜索结果中,我们将 openssh 中的 skip 改为 8.1p1-1,然后再点击下一步完成安装。如下图,下图中因为我已经安装过了,所以 openssh 这里没有显示 skip:

 

 再然后,我们需要将 Cygwin 安装目录下的 bin 目录的绝对路径添加到 Path 环境变量中。Cygwin 默认的安装路径为:C:\cygwin64,所以我们需要将 C:\cygwin64\bin 添加到 Path 环境变量中,如下图所示:

 

 最后,验证一下。我们打开 cmd,输入 ssh 回车看看是否有输出,有输出信息就表示 openssh 客户端安装成功了:

备注:这个 Cygwin 软件被安装上后,不但可以使用 ssh 客户端了,另外很多 linux 上的命令我们也都可以在 cmd 中使用了,比如 ls 和 pwd 等。原因就是这些命令工具都被提供在 C:\cygwin64\bin 目录下。你可以到这个目录下看看。挺好的软件,给个大大的赞。

第三步:准备一台 centos 虚拟机或者 ubuntu 虚拟机,确保虚拟机上的 ssh server 服务已经开启,并允许远程连接。比如我准备的是 centos7 虚拟机,IP 地址为 192.168.247.133

第四步:按下快捷键 ctrl+shift+p  搜索 Remote-SSH:Settings,在打开的页面中,点击 Edit in settings.json,在其中添加 "remote.SSH.showLoginTerminal": true, 如下图:

 第五步:点击左下角的绿色图标,选择 Remote-SSH:Connect to Host  然后点击 Configure SSH Hosts  然后选择点第一个 config,默认应该是一个空白的文件,在其中添加如下的配置:

Host Centos7.5_python3
    HostName 192.168.247.133
    Port 22
    User root

备注:其中 Host 后面的名称,可以随便命名,HostName 后面的 IP 地址是准备的虚拟机 IP 地址,Port 后跟的是 ssh server 服务监听的端口号,默认是 22,User 后跟的是远程连接的用户名,我这里使用超级用户连接。

这里补充一点

每次连接远程服务器,打开项目都要输入一次密码,是否很烦?(当然我并没有觉得烦)如果有人觉得烦的话,可以先在本地 windows 系统和远程服务器之间做好 ssh 免密登陆,然后在上面这个 config 文件中,在 User 配置下一行(缩进和 User 要一致),添加 IdentityFile C:\Users\...\.ssh\id_rsa 即可,其中 IdentityFile 参数后面跟的是 windows 上的 rsa 私钥文件。

第六步:点击 vscode 左边栏的远程连接图标,如下:

第七步:点击配置后的远程虚拟机名称旁边的那个按钮,输入密码进行登陆到服务器上,如下:

备注,如果 vscode 初次连接这台虚拟机的话,那么需要等待几分钟,因为 vscode 要做一些初始化工作。

第八步:连上虚拟机后,可以通过下图中标识的顺序打开远程服务器上的项目,当然每次打开项目都是需要再次输入密码的。这也是为了安全考虑。

在打开的项目中新建文件,删除文件,修改文件等操作,不需要再次输入密码。

第九步:运行项目或测试脚本的方法

感觉这个功能,在一定程度上,都可以代替 secure crt 或 xshell 远程连接工具和 ftp 上传下载客户端了。很强大。

补充:

没有语法检查,代码自动提示和补全功能,开发真的是一个很难受的事情,那么怎么在远程服务器上使用这些功能呢?下面就是补全这一点的方法:

首先:按下快捷键 Ctrl+Shift+X,进入插件管理页面,搜索 python,然后,点击 Install in SSH:Centos7.5_python3,如下图:

然后:在打开的项目中,生成 launch.json 和 settings.json 这两个配置文件,方法在最上面,和配置 windows 本地开发环境一样,我们在 settings.json 中配置一个远程服务器上的 python 解释器,如下图:

最后:运行 python 文件的方法

第十步:重新打开远程服务器上项目的方法

点击 File,点击 Close Folder,这个操作,会重新连接服务器。

也没找到其它的方法,就这么做吧。