安装ipdb(或其他一些专门编写的软件包)是否可能会导致breakpoint()
运行ipdb而不是pdb而不绑定sys.breakpointhook()
到ipdb?
https://www.python.org/dev/peps/pep-0553/
我不是在问 ipdb 是否这样做或是否会这样做,而是问是否可以编写代码。我知道我可以设置环境变量PYTHONBREAKPOINT=ipdb.set_trace
。问题是是否有可能仅通过安装ipdb
.
安装ipdb(或其他一些专门编写的软件包)是否可能会导致breakpoint()
运行ipdb而不是pdb而不绑定sys.breakpointhook()
到ipdb?
https://www.python.org/dev/peps/pep-0553/
我不是在问 ipdb 是否这样做或是否会这样做,而是问是否可以编写代码。我知道我可以设置环境变量PYTHONBREAKPOINT=ipdb.set_trace
。问题是是否有可能仅通过安装ipdb
.
在安装过程中,可以以编程方式在正确的目录中创建 ausercustomize.py
或 asitecustomize.py
并在其中进行更改os.environ['PYTHONBREAKPOINT']
。
这些模块是site.py
在启动序列的早期导入的,适合这种定制。就个人而言,我从未见过一个包更改/创建这些文件,所以我不希望ipdb
这样做。
一种方法是.pth
在您的site-packages
目录中创建文件。如果该文件中的行以import
语句开头,则该行正在执行。在那个文件中你可以猴子补丁sys.breakpointhook
例子:
echo "import random; print('hello')" > path/to/lib/python3.7/site-packages/test.pth
$ python -c ''
hello