19

安装ipdb(或其他一些专门编写的软件包)是否可能会导致breakpoint()运行ipdb而不是pdb而不绑定sys.breakpointhook()ipdb

https://www.python.org/dev/peps/pep-0553/

我不是在问 ipdb 是否这样做或是否会这样做,而是问是否可以编写代码。我知道我可以设置环境变量PYTHONBREAKPOINT=ipdb.set_trace。问题是是否有可能仅通过安装ipdb.

4

2 回答 2

4

在安装过程中,可以以编程方式在正确的目录中创建 ausercustomize.py或 asitecustomize.py并在其中进行更改os.environ['PYTHONBREAKPOINT']

这些模块是site.py在启动序列的早期导入的,适合这种定制。就个人而言,我从未见过一个包更改/创建这些文件,所以我不希望ipdb这样做。

于 2018-01-22T15:00:38.097 回答
-1

一种方法是.pth在您的site-packages目录中创建文件。如果该文件中的行以import语句开头,则该行正在执行。在那个文件中你可以猴子补丁sys.breakpointhook

例子:

echo "import random; print('hello')" > path/to/lib/python3.7/site-packages/test.pth
$ python -c ''
hello
于 2018-01-23T08:54:51.250 回答