window vscode python 单步调试不了

VSCode 调试配置:禁用只我的代码
本文介绍了如何在VSCode的launch.json配置文件中添加justMyCode: false,以实现调试时包含外部代码的功能。通过这一设置,开发者能够在调试时查看和步进到第三方库或依赖的源代码中,提高调试效率。

解决办法:

再launch.json中加如"justMyCode": false

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: 当前文件",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "stopOnEntry": true,
            "justMyCode": false,
            "console": "integratedTerminal"
        }
    ]
}

<think>我们正在讨论的是在VS Code中调.ipynb文件中的代码。根据之前的引用和常见做法,以下是详细步骤: ### 方法一:使用VS Code原生调功能(推荐) 1. **打开.ipynb文件**: - 在VS Code中直接打开笔记本文件,系统会自动识别为Jupyter Notebook 2. **设置调环境**: - 确保已安装以下VS Code扩展: - Jupyter (Microsoft官方扩展) - Python (Microsoft官方扩展) - 通过命令面板(`Ctrl+Shift+P`)执行:`Jupyter: Select Interpreter` 选择conda虚拟环境[^1] 3. **添加断点**: - 在代码元格左侧空白处击设置断点(出现红点) 4. **启动调**: - 点击顶部菜 `Run` → `Start Debugging` (或按`F5`) - 首次使用需选择调配置: ```json { "name": "Python: Current File", "type": "python", "request": "launch", "program": "${file}", "console": "integratedTerminal" } ``` 5. **调控制**: - 使用调工具栏控制执行: ![](https://code.visualstudio.com/assets/docs/python/jupyter/debug-cell-toolbar.png) - 支持变量监视、调用栈查看等标准功能 > **注意**:若遇到扩展激活失败[^2],尝: > 1. 更新所有相关扩展 > 2. 在命令面板执行 `Developer: Reload Window` --- ### 方法二:通过附加到Jupyter内核调 当需要调远程服务器上的笔记本时: 1. **启动Jupyter服务器**: ```bash jupyter notebook --no-browser --port=8888 ``` 2. **在VS Code中配置**: ```json // launch.json { "name": "Attach to Jupyter", "type": "python", "request": "attach", "port": 8888, "host": "localhost", "pathMappings": [{ "localRoot": "${workspaceFolder}", "remoteRoot": "/path/to/remote/project" }] } ``` 3. **调步骤**: - 选择`Attach to Jupyter`配置后启动调 - 在需要调元格前添加: ```python import debugpy debugpy.listen(5678) # 调器监听端口 debugpy.wait_for_client() # 等待调器连接 ``` --- ### 方法三:转换为Python脚本调 对于复杂调场景: 1. 在VS Code中打开.ipynb文件 2. 点击右上角 `Convert to Python Script` 图标 3. 在生成的.py文件中: - 添加 `# %%` 分隔符标记元格边界 - 使用标准Python方法 > **优势**:可结合`pdb`等传统调工具 > ```python > import pdb; pdb.set_trace() # 添加断点 > ``` --- ### 常见问题解决方案 | 问题现象 | 解决方案 | |---------|----------| | 断点不生效 | 检查内核是否匹配,重启内核后重 | | 变量窗口空白 | 确保在调状态下运行到断点处 | | 远程连接失败 | 检查端口映射和防火墙设置 | | 虚拟环境未加载 | 在终端手动激活环境:`conda activate env_name` | §§相关问题§§ 1. 如何调.ipynb中的多进程代码? 2. 调时如何监控GPU显存使用? 3. 如何保存调中的变量快照? 4. VS Code时如何跳过标准库代码? 5. 如何调Jupyter Notebook中的魔法命令(如`%%timeit`)? </think> ### 在 VS Code 中调 `.ipynb` 文件的完整指南 #### 一、基础调步骤(本地环境) 1. **环境准备**: - 安装 VS Code 扩展: - `Jupyter`(Microsoft 官方扩展) - `Python`(Microsoft 官方扩展) - 确保已激活正确的 Conda 虚拟环境[^1]: ```bash conda activate your_env_name ``` 2. **设置断点调**: 1. 打开 `.ipynb` 文件 2. 在代码元格左侧**击行号区域**设置断点(红点标识) 3. 按 `F5` 启动调 4. 使用调控制栏: - `继续(F5)`:运行到下一个断点 - `单步跳过(F10)`:执行当前行 - `单步(F11)`:进入函数内部 - `重启(Ctrl+Shift+F5)`:重新运行 3. **查看调信息**: - **变量窗口**:实时查看变量值 - **监视窗口**:添加自定义监视表达式 - **调用堆栈**:查看函数调用链 > **示例**:调数据加载代码 > ```python > import pandas as pd > # 在下一行设置断点 ▼ > data = pd.read_csv("dataset.csv") # ← 断点处可检查data.shape > print(f"加载数据: {len(data)} 条记录") > ``` #### 二、远程服务器调(通过 SSH) 1. **连接远程服务器**: - 安装 `Remote - SSH` 扩展 - 连接到服务器后打开项目文件夹 2. **附加到 Jupyter 内核**: 1. 在服务器终端启动 Jupyter: ```bash jupyter notebook --no-browser --port=8889 ``` 2. 复制含 token 的 URL(形如 `http://localhost:8889/?token=abc123`) 3. 在 VS Code 中选择: `Jupyter: Select Interpreter` → `Existing Jupyter Server` → 粘贴 URL[^1] 3. **调配置**(`launch.json`): ```json { "name": "Python: Remote Attach", "type": "python", "request": "attach", "port": 8889, "host": "localhost", "pathMappings": [{ "localRoot": "${workspaceFolder}", "remoteRoot": "/remote/project/path" }] } ``` #### 三、常见问题解决 1. **扩展激活失败**[^2]: - 解决方案: - 更新所有扩展 - 运行 `Developer: Reload Window` 命令 - 检查 Python 路径设置: `Ctrl+Shift+P` → `Python: Select Interpreter` 2. **断点不生效**: - 确保使用 **内核匹配的环境** - 重启内核:`Jupyter: Restart Kernel` 命令 3. **调魔法命令**: ```python %%debug # 在元格开头添加 # 或使用 %pdb on # 激活自动调器 ``` #### 四、高级技巧 1. **条件断点**: - 右键击断点 → 设置条件(如 `x > 100`) 2. **异常捕获**: - 在调侧边栏启用 `Raised Exceptions` 自动中断 3. **调控制台**: - 在调过程中直接执行代码: ```python !print(data.head()) # 在调控制台输入 ``` > **性能提示**:调大型数据时,使用 `%config Application.verbose_errors=False` 减少输出
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值