python ipdb初始化文件(〜/ .dpbrc)定义范围

时间:2019-01-17 14:44:23

标签: python debugging ipdb

我的理解是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中) 问题是什么? 如何定义在调试时始终可用的一组功能?

0 个答案:

没有答案