- PyDev 插件(最推荐,功能最全)
- Eclipse 内置的 Debug 配置 + 外部调试器(轻量级,无需额外插件)
使用 PyDev 插件(最推荐)
PyDev 是一个功能强大的 Eclipse 插件,它将 Eclipse 变成了一个功能齐全的 Python IDE,集成了语法高亮、代码补全、重构和强大的调试器。
步骤 1: 安装 PyDev 插件
- 打开 Eclipse (
Help->Eclipse Marketplace...)。 - 在搜索框中输入 "PyDev"。
- 找到 "PyDev" 插件,点击
Install。 - 按照提示完成安装,然后重启 Eclipse。
步骤 2: 配置 Python 解释器
安装完 PyDev 后,需要告诉 Eclipse 使用哪个 Python 解释器来运行你的代码。
- 打开
Window->Preferences。 - 在左侧导航栏中,展开
PyDev->Interpreter - Python。 - 点击右侧的
New按钮。 - 在弹出的窗口中,选择你系统中已安装的 Python 可执行文件(
python.exe或python3.exe),Eclipse 会自动检测到。 - 点击
OK,PyDev 会扫描你已安装的库,等待扫描完成,点击OK保存配置。
步骤 3: 创建 Python 项目
File->New->Project...。- 选择
PyDev->PyDev Project,点击Next。 - 输入项目名称(
MyPythonProject)。 - 确保已选中正确的解释器(在
Interpreter下拉菜单中)。 - 点击
Finish。
步骤 4: 编写代码并设置断点
-
在项目上右键,
New->PyDev Module,创建一个 Python 文件(debug_example.py)。 -
编写一些简单的代码:
# debug_example.py def fibonacci(n): """返回斐波那契数列的第 n 个数""" if n <= 1: return n else: return fibonacci(n - 1) + fibonacci(n - 2) if __name__ == "__main__": num = 10 print(f"计算斐波那契数列的第 {num} 个数...") result = fibonacci(num) print(f"结果是: {result}") -
设置断点:在代码行号左侧的灰色区域单击鼠标左键,你会看到一个蓝色圆点出现,这表示一个断点,在第
8行return fibonacci(n - 1) + fibonacci(n - 2)上设置一个断点。
步骤 5: 启动调试会话
- 确保你有一个 Python 文件被打开(
debug_example.py)。 - 点击 Eclipse 工具栏上的“调试”按钮(一个带有小虫子的图标)。
- 首次运行时,Eclipse 会提示你选择一个配置,选择
Python Run,然后点击OK。
Eclipse 会切换到调试透视图,程序会在你设置的断点处暂停。
步骤 6: 使用调试工具
在调试透视图下,你会看到几个关键的窗口:
- Debug 视图:显示当前正在执行的线程和堆栈帧,你可以在这里看到代码执行到了哪个函数的哪一行。
- Variables 视图:显示当前作用域内所有变量的值,你可以展开对象,查看其内部属性。
- 编辑器:代码行会高亮显示,并且有一个绿色箭头指示下一步将要执行的代码。
常用的调试操作按钮:
| 按钮 | 名称 | 功能 | 快捷键 |
|---|---|---|---|
![]() |
Resume (F8) | 恢复程序执行,直到遇到下一个断点。 | F8 |
![]() |
Step Over (F6) | 单步跳过,执行当前行,如果当前行是一个函数调用,它会完整地执行该函数,然后停在下一行。 | F6 |
![]() |
Step Into (F5) | 单步进入,如果当前行是一个函数调用,则进入该函数内部,停在函数的第一行,如果不是函数调用,效果同 Step Over。 |
F5 |
![]() |
Step Return (F7) | 单步返回,当在一个函数内部时,执行完当前函数的剩余部分,并返回到调用该函数的下一行。 | F7 |
![]() |
Drop to Frame | 将调用堆栈回退到指定的帧,并重新执行,这可以让你重新运行一部分代码,非常强大但需谨慎使用。 | - |
![]() |
Terminate (Ctrl+F2) | 终止整个调试会话。 | Ctrl+F2 |
![]() |
Toggle Line Breakpoint (Ctrl+Shift+B) | 切换当前行的断点。 | Ctrl+Shift+B |
调试技巧:
- 条件断点:在断点上右键 ->
Breakpoint Properties,可以设置一个条件表达式,只有当条件为True时,断点才会触发,这对于循环中调试特定情况非常有用。 - 监视表达式:在
Debug视图下方,通常会有一个Expressions标签页,你可以在这里添加任意表达式(如n + 1或my_list[0]),它的值会在调试过程中实时显示。 - 修改变量值:在
Variables视图中,可以选中一个变量,右键选择Change Value...,在调试过程中动态修改它的值来测试不同场景。
使用 Eclipse 内置 Debug 配置(无需插件)
这种方法利用了 Eclipse 的通用调试框架,通过一个外部脚本启动 Python 的调试服务器(pdb),Eclipse 作为客户端连接它,这种方法功能相对基础,但胜在轻量,且不依赖特定插件。
步骤 1: 创建一个启动脚本
在你的项目根目录下创建一个 .pydev 文件夹(如果不存在),然后在其中创建一个启动脚本,launch_pdb.py。
# .pydev/launch_pdb.py
import pdb
import sys
import os
# 将你的项目根目录添加到 sys.path,确保能导入模块
project_root = os.path.dirname(os.path.abspath(__file__))
sys.path.insert(0, project_root)
# 导入并运行你的主程序
# 将 'debug_example' 替换为你的主模块名
if __name__ == '__main__':
# 设置断点
pdb.set_trace()
# 运行你的代码
from debug_example import fibonacci
num = 10
print(f"计算斐波那契数列的第 {num} 个数...")
result = fibonacci(num)
print(f"结果是: {result}")
步骤 2: 创建一个远程调试配置
- 在 Eclipse 中,点击工具栏的“调试”按钮旁边的下拉箭头,选择
Debug Configurations...。 - 在左侧窗口中,右键点击
Remote Java Application,选择New。 - 配置新创建的调试配置:
- Name: 给它一个名字,
Python Remote Debug。 - Project: 选择你的 Python 项目。
- Connection Type: 选择
Socket Attach。 - Host:
localhost(如果你的调试器和程序在同一台机器上)。 - Port:
5678(这是一个常用端口,你可以修改,但需要和下面的脚本保持一致)。
- Name: 给它一个名字,
- 点击
Apply和Debug。
Eclipse 会进入调试透视图,但此时会显示 "未连接"。
步骤 3: 运行 Python 脚本进行连接
- 打开一个终端(命令行)。
- 进入你的 Eclipse 项目目录。
- 运行启动脚本:
python .pydev/launch_pdb.py
当脚本执行到 pdb.set_trace() 时,它会暂停并等待连接,如果一切正常,你会看到类似 (Pdb) 的提示符。
步骤 4: 连接并调试
回到 Eclipse 的调试透视图,你应该会看到连接成功,程序停在了 pdb.set_trace() 的那一行,接下来的操作(单步、查看变量等)和方法一完全相同。
总结与对比
| 特性 | PyDev 插件 | Eclipse 内置 Debug |
|---|---|---|
| 易用性 | 非常高,集成在 IDE 中,一键启动。 | 较低,需要手动创建启动脚本和配置。 |
| 功能 | 非常强大,条件断点、监视点、图形化调试等。 | 基础,主要依赖 pdb 的功能。 |
| 依赖 | 需要安装 PyDev 插件。 | 无需额外插件,纯 Eclipse 功能。 |
| 适用场景 | 绝大多数情况下的首选,适合所有 Python 开发者。 | 适合无法安装插件或需要特定调试器(如 pdb)的轻量级场景。 |
对于绝大多数用户,强烈推荐使用方法一(PyDev 插件),它提供了最无缝、最强大的调试体验,是使用 Eclipse 进行 Python 开发的标准方式,方法二则可以作为了解或在没有插件权限的环境下的备选方案。






