手把手教你使用 VS Code 运行和调试 Python 程序

本文以 Ubuntu 系统为例,介绍如何在 VS Code 上配置 Python 的编程环境,并把 Python 程序运行、调试起来。由于 Python 是解释型语言,并且 VS Code 中提供了内置的调试器可用于调试 Python 代码,因此配置和操作流程比调试 C/C++ 代码要简单一些。

准备工作

安装 Python 解释器

如果你的本地环境还没有 Python,需要先安装 Python 相关开发工具,可以参考 Python 安装指南 安装或升级 Python 解释器。如无特殊需求,建议安装当前最新的稳定版本。

安装 VS Code 插件

确保已经在 VS Code 中安装了 Python 扩展。你可以在 Extensions 视图中搜索 “Python” 并安装 Microsoft 提供的 Python 扩展。

下载示例代码

在 VS Code 中打开你的 Python 文件,或者使用我们这里提供的示例代码,本示例完整工程代码可在 GitHub 获取。

from datetime import datetime
import sys

class User:
    def __init__(self, name, email):
        self._name = name
        self._email = email

    def get_name(self):
        return self._name

    def get_email(self):
        return self._email
     
    def do_something_cool(self):
        current_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
        print (self._name + ", Welcome to GetIoT (" + current_time + ")")

    def __str__(self):
        return self._name + " , " + self._email

if __name__ == "__main__":
    print("Python Version:", sys.version)

    users = [ User("Rudy", "rudy@getiot.tech"), User("Tina", "tina@getiot.tech")]

    for user in users:
        user.do_something_cool()

配置调试器

由于 Python 是解释型语言,因此在 VS Code 中调试 Python 程序不需要 tasks.json 文件,只需要 launch.json 文件配置调试器即可。

但其实,launch.json 文件也不是必须的,如果你使用 VS Code 的默认配置,并且你的 Python 文件在当前工作区中,VS Code 可以在没有 launch.json 文件的情况下执行简单的 Python 调试。

  1. 选择 VS Code 左侧的调试图标,或者使用快捷键 Ctrl + Shift + D,打开 “Run and Debug” 视图。
  2. 在顶部选择 “Python” 作为环境。
  3. 如果你是第一次使用,VS Code 可能会提示你选择一个调试器。在这里,选择 “Python File” 即可。

创建 launch.json 文件

不过使用 launch.json 文件还是有很多好处的,它可以为调试器提供更多的配置选项,允许你定义自定义的调试配置,例如调试启动时的环境变量、工作目录、启动参数等内容。

创建 launch.json 文件的方法是在 “Run and Debug” 视图,点击 “创建 launch.json 文件”,然后选择一个调试配置模板,例如 “Python 文件”。

此时,launch.json 文件的内容如下。其中 "program" 字段可设置为你要调试的 Python 文件的路径。

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Current File",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal"
        }
    ]
}

运行调试

现在,可以开始调试你的 Python 程序了。选择 VS Code 左侧的调试图标,或者使用快捷键 Ctrl + Shift + D,打开 “Run and Debug” 视图。

在你想要设置断点的行上点击编辑器左侧的行号,或者直接按 F9 设置断点。断点将在调试时暂停执行,允许你逐步执行代码并查看变量的值。

点击编辑器顶部的绿色调试按钮(或按 F5)开始调试。VS Code 将运行你的 Python 文件,并在遇到断点时暂停执行。你可以使用调试器工具栏进行单步调试、查看变量、评估表达式等。

在终端窗口,可以看到 Python 程序的打印信息,如下:

Python Version: 3.12.1 (main, Dec 10 2023, 15:16:41) [GCC 9.4.0]
Rudy, Welcome to GetIoT (2024-01-20 15:37:55)
Tina, Welcome to GetIoT (2024-01-20 15:38:03)

设置虚拟环境

有时候,我们可能需要使用指定的 Python 环境,使用不同版本的 Python 解释器,下面介绍 Python 解释器的设置方法。

首先,按快捷键 Ctrl + Shift + P 打开执行命令的输入框,输入 “python select”,选择 “Python: 选择解析器”。

在这里,可以看到你的系统已安装的 Python 版本。如果有你想要的,直接选择即可。如果是 Python 虚拟环境,选择 “输入解释器路径…” 手动添加。

你可以通过浏览器文件系统查找的方式添加,选择你所需 Python 虚拟环境的解释器路径即可。

不过对于隐藏目录来说,这种方式不太方便。所以直接将路径复制、粘贴过去就可以了。

现在,按 F5 重新运行程序,可以看到 Python 的版本从原来的 3.12.1 变成了 3.8.10,说明配置已经生效了。

Python Version: 3.8.10 (default, Nov 22 2023, 10:22:35) [GCC 9.4.0]
Rudy, Welcome to GetIoT (2024-01-20 15:50:15)
Tina, Welcome to GetIoT (2024-01-20 15:50:23)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/336565.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SpringSecurity+JWT前后端分离架构登录认证

目录 1. 数据库设计 2. 代码设计 登录认证过滤器 认证成功处理器AuthenticationSuccessHandler 认证失败处理器AuthenticationFailureHandler AuthenticationEntryPoint配置 AccessDeniedHandler配置 UserDetailsService配置 Token校验过滤器 登录认证过滤器接口配置…

C++将信息输入到文件内

第一步检查文件是否打开&#xff0c;用到头文件&#xff1a; #include <fstream> #include <sstream> 文件打开的函数为 file.isopen() 信息输入到文件应该为 file << "" << value; 注意是file<< 如图 定义file ofstream f…

计算机组成原理 第一弹

ps&#xff1a;本文章的图片来源都是来自于湖科大教书匠高老师的视频&#xff0c;声明&#xff1a;仅供自己复习&#xff0c;里面加上了自己的理解 这里附上视频链接地址&#xff1a;1-2 计算机的发展_哔哩哔哩_bilibili ​​ 目录 &#x1f680;计算机系统 &#x1f680;计…

UI测试脚本录制器已上线,RunnerGo :UI自动化测试平台

想快速配置可视化UI自动化测试脚本&#xff1f;RunnerGo近期上线脚本录制器&#xff0c;根据你的测试操作直接生成UI自动化测试脚本&#xff0c;下面是使用方法 Step1:下载录制器 点击RunnerGo上方插件按钮下载录制器 Step2:录制器使用 将插件文件拖入浏览器扩展程序 点击打…

Zabbix 系统监控详解

1 介绍 1.1 摘要 本文深入浅出&#xff0c;切近实际运维应用&#xff0c;由 zabbix 3.4 版本入手&#xff0c;学习 zabbix 监控告警实现方式&#xff0c;由 zabbix 5.0 浅出实现快速部署、快速应用。本人从业多年&#xff0c;关注 zabbix 开源社区&#xff0c;以及 zabbix 官…

【计算机网络】3、IPv6、网络三层模型、网络的规划与设计、网络的规划与设计、网络存储技术、网络地址翻译NAT、默认网关、虚拟局域网VLAN、虚拟专用网VPN、URL

文章目录 IPv6IPv6的特点IPv4和IPv6的过渡期间主要采用三种基本技术双协议栈隧道技术翻译技术 网络三层模型核心层汇聚层接入层 网络的规划与设计工作区子系统水平布线子系统管理子系统垂直干线子系统设备间子系统建筑群子系统总结 廉价磁盘网络存储技术直接附加存储(DAS)网络附…

Git学习笔记(第1章):Git概述

目录 1.1 版本控制 1.1.1 何为版本控制 1.1.2 为什么需要版本控制 1.1.3 版本控制工具 1.2 发展历史 1.3 工作机制 1.4 代码托管中心&#xff08;远程库&#xff09; Git是一个免费的、开源的分布式版本控制系统&#xff0c;可以快速高效地处理从小型到大型的各种项目。…

LeetCode19:删除链表的倒数第N个结点

力扣题目链接 思路&#xff1a;由于本题有可能删除头结点&#xff0c;为保证删除头结点和其他结点的操作一致&#xff0c;因此首先创建一个虚拟头结点dummy。 其次&#xff0c;本题需要删除倒数第N个结点&#xff0c;由于单链表只有next指针&#xff0c;因此需要找到倒数第N1…

事件驱动架构

请求驱动 服务注册&#xff0c;服务发现&#xff0c;虽然调用地址隐藏了&#xff0c;但是调用stub必须相同。 rpc通信&#xff0c;远程调用。 生产者和消费者要有相同的stub存根。 消费者和生产者的调用接口是耦合的。 事件驱动 核心&#xff1a;上下游不进行通信 中间通过M…

AP5101C 高压线性 LED恒流驱动器 DFN2*2 LED灯汽车雾灯转向灯

产品描述 AP5101C 是一款高压线性 LED 恒流芯片 &#xff0c; 简单 、 内置功率管 &#xff0c; 适用于6- 100V 输入的高精度降压 LED 恒流驱动芯片。电流2.0A。AP5101C 可实现内置MOS 做 2.0A,外置 MOS 可做 3.0A 的。AP5101C 内置温度保护功能 &#xff0c;温度保护点为 130 …

「Kafka」Broker篇

「Kafka」Broker篇 主要讲解的是在 Kafka 中是怎么存储数据的&#xff0c;以及 Kafka 和 Zookeeper 之间如何进行数据沟通的。 Kafka Broker 总体工作流程 Zookeeper 存储的 Kafka 信息 启动 Zookeeper 客户端&#xff1a; [atguiguhadoop102 zookeeper-3.5.7]$ bin/zkCli.sh通…

go语言(一)----声明变量

package mainimport ("fmt""time" )func main() {fmt.Print("hello go!")time.Sleep(1 * time.Second)}运行后&#xff0c;结果如下&#xff1a; 1、golang表达式中&#xff0c;加&#xff1b;和不加&#xff1b;都可以 2、函数的{和函数名一…

范围运算between...and和空判断

目录 between...and 空判断 Oracle从入门到总裁:https://blog.csdn.net/weixin_67859959/article/details/135209645 between...and between...and的主要功能是用户进行范围查询,语法如下: select 字段 | 数值 between 最小值 and 最大值; 1.查询工资在 1500 ~ 3000 的所…

【Qt】信号和槽

需要云服务器等云产品来学习Linux的同学可以移步/-->腾讯云<--/-->阿里云<--/-->华为云<--/官网&#xff0c;轻量型云服务器低至112元/年&#xff0c;新用户首次下单享超低折扣。 目录 一、Qt中的信号和槽 1、信号 2、槽 3、Q_OBJECT 二、Qt中的connect函…

【Go面试向】实现map稳定的有序遍历的方式

问题 大家好 我是寸铁&#x1f44a; 总结了一篇实现map稳定的有序遍历的方式探讨的文章✨ 喜欢的小伙伴可以点点关注 &#x1f49d; 你对 map 了解多少&#xff1f;如果要实现第一个稳定的有序遍历有哪些方式&#xff1f; 回答 你对 map 了解多少&#xff1f; 我对map有一定的…

RHCSA上课笔记(前半部分)

第一部分 网络服务 第一章 例行性工作 1.单一执行的例行性工作 单一执行的例行性工作&#xff08;就像某一个时间点 的闹钟&#xff09;&#xff1a;仅处理执行一次 1.1 at命令&#xff1a;定时任务信息 [rhellocalhost ~]$ rpm -qa |grep -w at at-spi2-core-2.40.3-1.el9.x…

Qt文件和目录相关操作

1.相关说明 QCoreApplication类、QFile类、QDir、QTemporaryDir类、QTemporaryFile类、QFileSystemWatcher类的相关函数 2.相关界面 3.相关代码 #include "dialog.h" #include "ui_dialog.h" #include <QFileDialog> #include <QTemporaryDir>…

【JavaEE】网络原理:网络中的一些基本概念

目录 1. 网络通信基础 1.1 IP地址 1.2 端口号 1.3 认识协议 1.4 五元组 1.5 协议分层 什么是协议分层 分层的作用 OSI七层模型 TCP/IP五层&#xff08;或四层&#xff09;模型 网络设备所在分层 网络分层对应 封装和分用 1. 网络通信基础 1.1 IP地址 概念:IP地址…

AIGC语言大模型涌现能力是幻觉吗?

Look&#xff01;&#x1f440;我们的大模型商业化落地产品&#x1f4d6;更多AI资讯请&#x1f449;&#x1f3fe;关注Free三天集训营助教在线为您火热答疑&#x1f469;&#x1f3fc;‍&#x1f3eb; 在自然界中&#xff0c;涌现现象无处不在&#xff0c;从鸟群的和谐飞翔到生…

【C++】unordered_map,unordered_set模拟实现

unordered_map&#xff0c;unordered_set模拟实现 插入普通迭代器const迭代器unordered_map的[ ]接口实现查找修改哈希桶完整代码unordered_map完整代码unordered_set完整代码 喜欢的点赞&#xff0c;收藏&#xff0c;关注一下把&#xff01; 上一篇文章我们把unordered_map和u…