Visual Studio Code是微软的一个完全免费的代码编辑器。 它是迄今为止我发现的最灵活、功能最丰富的代码编辑器。 它甚至比PyCharm Community 具有更多的功能。 并且还支持 Jupyter——并且Jupyter Desktop好用多了。
本篇文章将介绍针对于数据科学方向的Python开发设置 VSCode 的方法。
下载并安装Visual Studio Code访问code.visualstudio.com下载VSCode。网页会自动检测你的操作系统,所以你只需要点击蓝色的下载按钮:
在Mac上,会下载一个ZIP文件,你可以将应用程序解压并拖动到Applications文件夹。在Windows上,我们需要打开. exe文件并点击Next几次进行安装,而对于Linux,它是一个DEB文件,直接进行安装就可以了。
下面是你启动后应该看到的:
打开计算机上的任何文件夹,右键单击并选择使用vscode打开就可以对目录中的文件进行编辑。 我在桌面上创建了一个文件夹,并在其中创建了一个 main.py 文件:
默认情况下,vscode不会提供调试选项,也不会有 IntelliSense,也无法选择虚拟环境。 所以我们需要安装相应的插件。
下载主题(可选)我喜欢在 VSCode 中做的第一件事就是现选个漂亮的主题。 虽然它与 Python 和数据科学无关,但是谁不是视觉的动物呢,因此你可以跳过本节或将其视为加分点。
默认主题对我来说太微软了。 要更改它可以单击扩展选项卡并搜索主题。 例如 One Dark Pro 主题,它是免费的,尽管它名字里面有 Pro:
单击主题并点击安装按钮。 安装完成后可以按 CMD K CMD T (MAC),CTRL K CTRL T(windows)打开主题下拉菜单。 选择一个喜欢的主题和配色:
安装官方 Python 扩展
想使用 Python,这是必不可少的。 转到“扩展”选项卡并搜索 Python。 安装 Microsoft 的官方扩展:
现在可以更轻松地编写 Python 文件了。 如果安装了conda还会自动检测虚拟环境, 单击左下方显示 Python 3.9.7 64 位(在我的机器上)并选择conda已经创建的环境:
官方的环境是可以编辑Jupyter Notebooks的! 创建一个 .ipynb 文件来验证——它可能会提示你安装一些额外的依赖项,所以只要点同意就好。
安装后,您可以在单元格中输入 Python 代码以验证一切正常:
现在我们可以通过脚本或jupyter使用 Python。 接下来让我们添加一些额外的功能。
Python docstring 生成器编写好的 Python 代码的一个重要工作就是编写好的注释。 在VSCode中我们可以安装 Python Docstring Generator 扩展。
让我们看看它是如何工作的。 编写一个对两个整数求和的 Python 函数:
您现在可以通过在函数声明下方写三个双引号并选择generate docstring 选项来添加docstring :
结果是这样的,插件会根据模板为我们生成相应的注释格式我们只要修改就可以了
Python linter
最后,我想聊聊 linting。 在 VSCode 中启用 linting 可以自动判断我们的代码是否遵循 Python 约定并生成报告。 例如会告诉你是否有已导入但未使用的模块,或者是否有任何需要改进的代码。
首先,打开命令面板(设置 — 命令面板...或按 F1)并输入 Linter。 选择 Select Linter 选项:
PyLint 是最常用的,所以可以选择它:
如果尚未安装 PyLint,它会要求安装。 它只针对目前激活的环境,如果有其他的环境必须为每个虚拟环境重复该过程:
现在让我们删除 add() 函数并测试 PyLint 提供的功能。 导入 json 和 random 模块并打印一个 1 到 100 之间的随机整数:
保存文件后,您会立即看到警告消息。 打印语句提示是因为它后面没有新行,只需在行尾按 Enter 键(这是一个快速解决方案)。
顶部的 import 语句有下划线,因为顶部没有文件级的docstring,所以让我们快速写一个:
如果您保存文件,警告不会消失。 它现在提示你已经导入了 json 但没有在文件中使用它:
删除未使用的导入后,该消息就消失了。
linter 可以帮助您编写更好的 Python 代码,并确保遵循所有约定。 如果 linter 给你警告信息,你的代码可能仍然会运行起来。但看着它们很烦人(尤其是对于像我这样的强迫症患者),所以尽量在提示出现时解决它们这样才能够保证良好的使用习惯。
通过以上的步骤已经可以使用vscode进行Python的开发了,如果你有什么好的插件或者技巧,可以直接留言告诉我们。
作者:Dario Radečić
,