pha*_*ebz 7 python debugging visual-studio-code
在调试我的用户代码时,我想进入安装的依赖项的代码,例如使用pip install -e path/to/package.
我试图在项目中找到一个列出依赖项的位置,并且可以浏览它以打开源文件进行调试(例如,这可以在 PyCharm 中通过“外部库”部分实现)。
我想单步进入并通过依赖项代码,但找不到方法来执行此操作。
通过内置的调试配置应该可以实现。据我所知,唯一不可能的情况是 Python 依赖项是 C 代码(例如 OpenCV、pygame),因为它们存储为.so文件而不是 Python 文件。
\n\n假设我有这样的结构:
\n\nmain\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 test.py\npkgs\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 mypkg\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 moduleA.py\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 setup.py\nRun Code Online (Sandbox Code Playgroud)\n\n我mypkg基于Python 文档中的打包 Python 项目示例创建。然后我使用您提到的相同命令将其安装在我的环境中:
pip install -e /path/to/mypkg\nRun Code Online (Sandbox Code Playgroud)\n\n在 test.py 我有这个:
\n\nimport moduleA\nmoduleA.add_two_num(1, 2)\nRun Code Online (Sandbox Code Playgroud)\n\n首先,确保将 VSCode 解释器设置为使用与安装位置相同的环境mypkg。请参阅从 VSCode 文档中选择并激活环境。
接下来,为 test.py创建调试配置:
\n\n{\n "name": "test",\n "type": "python",\n "request": "launch",\n "cwd": "${workspaceFolder}",\n "program": "/path/to/test.py",\n "pythonPath": "/path/to/.virtualenvs/test-py37/bin/python",\n "console": "integratedTerminal",\n}\nRun Code Online (Sandbox Code Playgroud)\n\n这里再次重要的是设置pythonpath为指向python您安装的位置mypkg。这里我使用一个名为 的 virtualenv test-py37。
现在,在外部包所在行设置一个断点:
\n\n\n\n然后启动调试器(F5在“调试”面板中按或选择它,然后按“播放”按钮)。当调试器在断点处停止时:\n
只需按“Step Into”按钮(或F11),VS Code 就会将您带到外部依赖项的代码。您还可以直接在 VS Code 上打开文件,然后在其上放置断点。一旦它在编辑器中打开,下次调试时,它就会在这些断点处停止。
\n\n\njustMyCode在 launch.json 文件中禁用。默认情况下启用此功能。
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Python: Module",
"type": "python",
"request": "launch",
"module": "my_package",
"justMyCode": false
}
]
}
Run Code Online (Sandbox Code Playgroud)
这帮助我解决了 Studio 版本的问题:1.63.2(通用)
| 归档时间: |
|
| 查看次数: |
6441 次 |
| 最近记录: |