运行时警告:忽略不可导入的 $PYTHONBREAKPOINT

RuntimeWarning: Ignoring unimportable $PYTHONBREAKPOINT

我的脚本中有一个 breakpoint,但是当脚本到达断点时,它输出:

RuntimeWarning: Ignoring unimportable $PYTHONBREAKPOINT

这是我正在使用的软件包阻止我做的事情吗?

这通常意味着 ipdb 尚未安装,如果这就是您使用的断点。

就运行:

pip install ipdb
export PYTHONBREAKPOINT=ipdb.set_trace

尝试使用 pip install ipdb 然后 export PYTHONBREAKPOINT=ipdb.set_trace 希望对你有用

如果您 运行 遇到此问题但同时安装了 ipython,您可以使用 ipython 中预装的 ipdb IPython.terminal.debugger 模块。 (我有一个潜在的特定用例,我使用的 anaconda 环境没有安装 ipdb,但确实安装了 ipython,我担心通过安装 ipdb.)

具体可以设置

export PYTHONBREAKPOINT=IPython.terminal.debugger.set_trace

在 运行使用 python -m pdb myscript.py 设置脚本之前。

在我的搜索中,我从 IPython.core.debugger 中的另一个 ipdb 调试器开始(请注意,这个是 core 而不是 terminal)。但是,根据我自己的使用和 this thread,该版本现在是 'plainer',并且不包括自动完成等花哨的功能。 (我实际上不清楚 ipdb 的 'plain' 版本与 pdb 有何不同。)

(旁注:我还发现 PYTHONBREAKPOINT 变量会影响 breakpoint() 调用的工作方式,即使使用 ipython 调用脚本也是如此。也就是说,如果您运行 带有 breakpoint() 使用 ipythonpdb 的脚本,当您点击该行时,您将进入 PYTHONBREAKPOINT 设置的调试器,而不是 ipython 内置于 ipdb.)