当前位置: 首页 > news >正文

白骑士的PyCharm教学基础篇 1.3 调试与运行

系列目录

上一篇:白骑士的PyCharm教学基础篇 1.2 PyCharm基本操作

配置与调试环境

配置调试环境

选择解释器

  • 在 PyCharm 中选择正确的 Python 解释器:依次点击 “File” -> “Settings” -> “Project: [项目名]” -> “Project Interpreter”,选择或添加解释器。

配置运行/调试配置

  • 依次点击 “Run” -> “Edit Configurations”;
  • 点击左上角的 “+” 按钮,选择 “Python”;
  • 输入配置名称,选择要运行的脚本文件;
  • 配置脚本参数、工作目录和环境变量(如果需要);
  • 点击“OK”保存配置。

虚拟环境配置

创建虚拟环境

  • 打开 PyCharm,创建新项目或打开现有项目;
  • 依次点击 “File” -> “Settings” -> “Project: [项目名]” -> “Python Interpreter”;
  • 点击右侧齿轮图标,选择 “Add...”,然后选择 “New environment using...”,选择 “Virtualenv”;
  • 选择虚拟环境的路径并点击 “OK”。

激活虚拟环境

  • 在终端(Terminal)中导航到项目目录,并运行 ‘source venv/bin/activate’(在 Windows 上运行 ’venv\Scripts\activate‘)。
  • 在 PyCharm 中,确保选择虚拟环境作为项目解释器。

断点设置与调试流程

设置断点

在代码中设置断点

  • 在编辑器中,点击行号左侧的空白区域,添加断点。添加断点后,会出现一个红色圆点;
  • 可以在任意可执行行设置断点。

管理断点

  • 依次点击“Run” -> “View Breakpoints”。
  • 在弹出的窗口中,可以启用、禁用、删除断点,并设置断点的条件和日志消息。

调试流程

启动调试

  • 依次点击 “Run” -> “Debug” 或按 ‘Shift + F9’ 启动调试;
  • 在调试模式下,程序会在断点处暂停,允许检查和修改变量值。

调试窗口

  • 调试窗口显示在编辑器底部,包含以下面板:
  • Variables:显示当前作用域内的所有变量及其值;
  • Frames:显示当前调用堆栈,可以在不同调用帧之间切换;
  • Console:允许在调试过程中执行 Python 表达式;
  • Breakpoints:显示所有断点,可以启用或禁用断点。

调试操作

  • 继续执行:点击 “Resume Program” 按钮或按 ‘F9’,程序将继续运行至下一个断点或结束;
  • 单步执行:点击 “Step Over” 按钮或按 ’F8‘,执行当前行,并跳到下一行;
  • 进入函数:点击 “Step Into” 按钮或按 ‘F7’,进入当前行调用的函数内部;
  • 跳出函数:点击 “Step Out” 按钮或按 ‘Shift + F8’,执行完当前函数并返回调用处;
  • 评估表达式:点击 “Evaluate Expression” 按钮或按 ‘Alt + F8’,输入表达式并查看其值。

运行与调试Python程序

运行Python程序

配置运行配置

  • 依次点击 “Run” -> “Edit Configurations”,配置运行脚本、参数和环境;
  • 配置完成后,点击 “OK” 保存配置。

运行程序

  • 点击 “Run” 按钮或按 ‘Shift + F10’ 运行程序;
  • 程序输出会显示在 “Run” 工具窗口中。

调试Python程序

启动调试

  • 依次点击 “Run” -> “Debug” 或按 ;Shift + F9‘ 启动调试;
  • 在调试模式下,程序会在断点处暂停,允许检查和修改变量值。

使用调试功能

  • 在调试模式下,可以使用断点、单步执行、进入函数、跳出函数等调试功能;
  • 可以在调试窗口中查看变量值、调用堆栈,并在控制台中执行表达式。

总结

        通过学习和掌握这些调试与运行技巧,可以更有效地在 PyCharm 中开发和调试 Python 程序,快速定位和解决代码中的问题。

下一篇:白骑士的PyCharm教学基础篇 1.4 版本控制与集成​​​​​​​

http://www.lryc.cn/news/406363.html

相关文章:

  • 爬虫学习1:初学者简单了解爬虫的基本认识和操作(详细参考图片)
  • WHAT - 通过 shadcn 组件源码学习 React
  • grafana对接zabbix数据展示
  • C++ 学习补充 1:短链算法
  • 硅纪元视角 | 语音克隆突破:微软VALL-E 2,Deepfake新纪元!
  • 没有51基础,能不能学好STM32?
  • Web开发:VUE3小白开发入门基础笔记
  • 技术周总结 2024.07.15~07.21周日(Spark性能优化)
  • 提高性能的常见技术
  • LeetCode206 反转链表
  • nginx通过nginx_upstream_check_module实现后端健康检查
  • FastGPT 知识库搜索测试功能解析(二)
  • 双向链表<数据结构 C版>
  • react18+
  • rk3568 OpenHarmony4.1 Launcher定制开发—桌面壁纸替换
  • MySQL:送分or送命 varchar(30) 与 int(10)
  • 【odoo17】后端py方法触发右上角提示组件
  • 1775D - Friendly Spiders
  • 【python】OpenCV—Point Polygon Test
  • 6 Go语言的常量、枚举、作用域
  • 第十一章 数据结构
  • LeetCode704 二分查找
  • [言简意赅] Matlab生成FPGA端rom初始化文件.coe
  • 【QAC】分布式部署下其他机器如何连接RLM
  • 从等保测评看行业安全趋势:洞察与预测
  • HTTP模块(二)
  • 引入缓存带来的问题以及解决方案
  • 力扣39题:组合总和的 Java 实现
  • 使用el-table实现自动滚动
  • Angular由一个bug说起之八:实践中遇到的一个数据颗粒度的问题