我怎么弄乱了python pdb

时间:2015-04-21 08:18:08

标签: python debugging pdb

之前,在我发现pip install之后,我使用ipdb在系统范围内安装了pdb。用pip成功安装了它。 没有做得很好,让我决定回到以前的pdb。 现在我使用import pdb; pdb.set_trace()

收到错误
  

exceptions.AttributeError:' module'对象没有属性' set_trace'

知道出了什么问题吗?

编辑: 这是重新安装IPython和PDB后的错误:

  

File" /usr/local/lib/python2.7/dist-packages/IPython/core/debugger.py" ;,第59行,in       从pdb导入Pdb作为OldPdb   ImportError:无法导入名称Pdb

3 个答案:

答案 0 :(得分:7)

我设法解决了这个问题。显然,pip存储库中的另一个模块叫pdb,用于共享密码管理。每次尝试pip install pdb我都不知道我的机器安装了错误的模块。 pdb模块(python调试器)随产品一起提供,当您在系统上安装它时,或者在Linux Ubuntu的情况下,它包含在分发中,位于/usr/lib/python2.7而不是第三方在/usr/local/lib/python2.7下安装的模块。 对于一些奇怪的,未知的原因(我猜安装ipdb导致了这一点),我在预先发布的python模块下没有pdb.py。例如,/usr/lib/python2.7。 解决我的问题是从python文档网站下载pdb.py模块并将该文件放在提到的文件夹中。 希望这可以提供帮助。

答案 1 :(得分:2)

尝试关注cmd并查看天气中是否存在pdb:

pip freeze 

这里将列出所有用python检查安装的pkgs,

如果你试试这个:

 pip uninstall pdb
 Cannot uninstall requirement pdb, not installed
 Storing debug log for failure in /tmp/tmpVgAfBP

你可以确认输出:

 pip uninstall pdb

答案 2 :(得分:2)

是的我今天遇到了同样的问题,解决方案与上述相同,请点击pip freeze | grep pdb进行分析,您可能会看到:

ipdb==0.9.0

pdb==0.1

这意味着你已经自己安装了pdb并且这个覆盖了ipdb,在pip uninstall pdb之后,你应该只保留

ipdb==0.9.0

剩余!