用于 Python 开发的 Visual Studio Code
介绍
正如我在《Visual Studio Code 软件开发指南》中讨论的那样,Visual Studio Code 的优势之一是扩展所带来的强大功能和灵活性。您可以在编辑器内部或通过Visual Studio Code Marketplace找到扩展。.NET(或 C#)是最受欢迎的扩展之一。在本文发布时,Python 是 Visual Studio Code 的顶级扩展,安装数量是 C# 扩展的两倍多。
本指南将讨论如何安装 Visual Studio Code 以及 Python 扩展,以及如何将两者结合使用作为强大的开发工具。
安装 Python 扩展
虽然您可以使用 Visual Studio Code 的默认安装来开发 Python 应用程序,但 Python 扩展将使其变得更加容易。在 macOS 上使用Ctrl-Shift-X / Cmd-Shift-X打开扩展窗格,或单击侧栏中的第五个图标。
在窗格顶部的扩展列表中搜索Python 。
您想要的是来自 Microsoft 的扩展。它的下载量将超过所有其他扩展,因为它目前是 Visual Studio Code 最受欢迎的扩展。单击绿色安装按钮即可安装扩展。
Python 扩展添加了许多功能,例如
- Tab 补全
- 代码提示
- 调试
- 语法检查
- 代码导航
- 测试
- Jupyter 笔记本支持
本指南无法涵盖所有这些功能,但会介绍其中的一些。
虚拟环境
本指南中的示例假设您已安装 Python 并了解该语言。本指南不会详细介绍 Python 基础知识或虚拟环境。但如果您在 Explorer 中打开的目录中有一个虚拟环境,Visual Studio Code 可以检测到它并在编辑器中将其关联。打开命令面板并搜索Python:选择 Interpreter。
这将显示检测到的虚拟环境的列表。
在此屏幕截图中,系统上有很多环境。但您将选择在当前目录中创建的环境。之后,当您打开新的终端窗口时,虚拟环境的激活脚本将运行。它甚至会检测 shell 并选择适当的脚本!
编辑 Python 代码
第一次在目录中打开 Python 文件时,Visual Studio Code 会提示您安装 linter。
单击“安装”,Visual Studio Code 将打开另一个终端,激活虚拟环境,然后pip 安装linter。该 linter 将用于检测代码中的错误,并将显示在编辑器窗口内。
Visual Studio Code 为 Python 代码提供制表符补全和代码提示。请注意,它将检测 Python 标准库中的内置模块:
以及使用pip安装的第三方模块,例如flask(也支持代码片段!):
还有用户定义的代码!它还可以处理缩进,您可以将其配置为 PEP-8 或您自己的样式:
调试
Python 扩展还支持在 Visual Studio Code 内部进行调试。在调试之前,您需要创建一个 launch.json 文件来配置 Visual Studio Code。这可以通过命令面板中的 Debug : Open launch.json命令完成。选择Python环境。
接下来选择Python 文件来调试当前打开的文件。
这将在项目根目录中的.vscode目录中创建一个launch.json文件。通过单击行号左侧在 Python 文件中设置断点。将出现一个红点。现在使用快捷键Ctrl-Shift-D / macOS 上的Cmd-Shift-D切换到调试面板。确保在顶部的下拉框中选择了配置Python:当前文件,然后按绿色的运行按钮。
解释器将执行当前文件并在断点处停止。您可以在侧栏中的“变量”窗格中检查范围内的当前值。您也可以在“监视”窗格中设置表达式。请注意,编辑器顶部是熟悉的“继续”、“跳过”和其他调试任务的控件。
如果您使用 Flask 或 Django 开发 Web 应用,您也可以在 Visual Studio Code 中调试这些应用。在调试窗格中选择添加配置。
launch.json文件将打开并提示您要添加的配置类型。选择Python。
这将在命令面板中打开配置选择列表。选择Flask。
系统将提示您输入应用程序的路径。在此示例中,应用程序位于名为two.py的文件中。
在two.py内部,选择调试面板中的Python: Flask选项,并在代码内部设置断点。
按下运行按钮。转到https://127.0.0.1:5000,代码将在第 10 行中断。请注意,可以检查范围内的变量。
测试
该扩展还可以使用unittest、pytest或nose检测和运行 Python 测试。此示例使用unittest,因为它是 Python 标准库的一部分。以下是运行测试的简单方法:
import random
import string
def generate_password(min_length = 8):
password = ''
for _ in range(min_length):
next = random.choice(string.ascii_letters + string.digits)
password += next
return password
然后包含一个测试文件:
# filename password_test.py
import password
import unittest
class PasswordTests(unittest.TestCase):def test_password_length_16(self):
self.assertEqual(len(password.generate_password(16)), 16)
if __name__ == '__main__':
unittest.main()
这个简单的测试仅检查生成的密码的长度是否与传递给generate_password函数的值相同。打开命令面板并搜索Python: Configure Tests<font st
免责声明:本内容来源于第三方作者授权、网友推荐或互联网整理,旨在为广大用户提供学习与参考之用。所有文本和图片版权归原创网站或作者本人所有,其观点并不代表本站立场。如有任何版权侵犯或转载不当之情况,请与我们取得联系,我们将尽快进行相关处理与修改。感谢您的理解与支持!
请先 登录后发表评论 ~