【发布时间】:2020-05-06 19:55:34
【问题描述】:
我想调试一些 Python 安装附带的基本包和/或内置包,包括 pip 和 venv。
希望来自文件权限的错误消息(无法访问具有“不可打印文件名”的文件),我的一些团队正在运行这些命令 - 有关详细信息,请参阅 this question。
问题
在尝试捕获主要 python 可执行文件中的问题或直接运行基本 python 模块时如何调试 Python 源代码(请参阅以下示例以了解 pip 和 venv)?
$ python -m pip install --upgrade
$ python -m venv .venv
如果重要的话,我的环境是 VSCode,我很高兴能够在我编写的任何自定义脚本上使用调试器,使用与主要 Microsoft Python 扩展交互(我假设)的内置调试器。
【问题讨论】:
-
pip是一个预构建的二进制文件,所以如果你想调试它很可能需要直接修改它的source code 并重建可执行文件。对于venv,源似乎位于<python_install>\lib\venv下的__init__.py文件中。在那里,你可以添加import pdb; pdb.set_trace()来启动 Python 调试器(或者只是breakpoint(),它应该在 VSCode 中工作)。 -
@b_c:
pip'executable' 只是一个 Python 脚本,它使用pkg_resourceslibrary (间接)导入pip._internal.cli.main模块并在其中运行main()函数。打开which pip指向的路径,您会看到它只是可以添加调试语句的文本。 -
@MartijnPieters 很高兴知道!我看的时候没有看到 pip 模块(没想到它会在
site-packages中)而且我不认为python -m pip会暗示它确实作为模块存在于某处.
标签: python debugging visual-studio-code vscode-debugger