我的理解是python调试器pdb和ipdb使用相同的初始化文件:〜/ .pdbrc。
我的目标是编写一套python调试工具(即函数),以便在调试时使用(应该始终可用)。
为便于说明,该工具在以下示例中称为myplot()。 我还从https://phdru.name/Software/dotfiles/python/pdbrc.html中获悉,init文件中不应包含python这样的内容……由于import语句确实是python,这让我感到很奇怪。但这解释了下面的(可能无用的)execfile。
我的〜/ .pdbrc:
distinct=True
我的〜/ .pdbrc.py:
from django.db.models import Count, Q
Category.objects.annotate(
qtd=Count(
"items_history__idea_id",
filter=Q(items_history__current=1),
distinct=True
)
)
现在,我正在调试导入bar.py的foo.py。 在调试主foo.py程序时,可以调用myplot(),但是在bar.py中,符号未定义:
foo.py:
import matplotlib.pyplot as plt
import numpy as np
plt.ion()
import os
execfile(os.path.expanduser("~/.pdbrc.py"))
bar.py:
import matplotlib.pyplot as plt
import numpy as np
plt.ion()
def myplot(x):
print "myplot"
plt.plot(x)
运行ipdb:
import numpy as np
import bar
import ipdb
ipdb.set_trace()
var1 = np.array([1,3,1])
var2 = bar.get_var2()
符号“ myplot”不再可见...(在bar.py中) 问题是什么? 如何定义在调试时始终可用的一组功能?