trace python:只包含一些文件

gue*_*tli 14 python debugging trace

我知道我可以使用它来跟踪命令执行:

python -m trace -t script.py
Run Code Online (Sandbox Code Playgroud)

但我想减少输出:只显示我的src /(pip install -e ...)中的文件.

我怎样才能做到这一点?

gue*_*tli 11

我的解决方案基于Brian Cain的答案:

export PYTHONIOENCODING=utf-8
python -m trace --ignore-dir=$HOME/lib64:$HOME/lib:/usr -t script.py
Run Code Online (Sandbox Code Playgroud)

我的virtualenv直接在$ HOME中,我的代码安装在$ HOME/src中.

PYTHONIOENCODING=utf-8;是必需的,因为如果python代码中有非ascii字符,我会收到UnicodeErrors.


小智 5

如果您正在运行脚本,则bash可以使用以下内容:

python -m trace --ignore-dir=$(python -c 'import sys ; print ":".join(sys.path)[1:]') -t ./script.py
Run Code Online (Sandbox Code Playgroud)

对于python3:

python -m trace --ignore-dir=$(python -c 'import sys ; print(":".join(sys.path)[1:])') -t ./script.py
Run Code Online (Sandbox Code Playgroud)

通过这种方式,您可以忽略您是否处于虚拟环境或更深奥的场景中.