【问题标题】:PyDev debugger not works with Queue.py filePyDev 调试器不适用于 Queue.py 文件
【发布时间】:2018-07-16 09:24:24
【问题描述】:

我开始在Eclipse中使用PyDev,在调试自己的文件Queue.py时碰巧遇到了问题。

当我启动调试器时,我在回溯时遇到错误:

AttributeError: module 'queue' has no attribute 'Queue'

我发现这与 PyCharm debugger fails with AttributeError 相关。虽然只有一部分解决方案对我有用。我从 PYTHONPATH 中清理了项目 src 文件夹,我看到回溯没有显示任何错误,但调试器不会在我的 Queue.py 中的断点处停止>.

如果我将文件重命名为 Queue_1.py,尽管调试器可以正常工作

问题是。如何使 PyDev 调试器与名为 Queue.py 的文件或我选择的任何名称一起工作?我使用训练示例,并预测我会有很多文件名称冲突(数据结构、算法等)

【问题讨论】:

    标签: python pydev


    【解决方案1】:

    您不应该有一个名称与标准库模块冲突的模块。

    即:拥有 myproject.Queue 是可以的,但只是 Queue 并不是因为您实际上破坏了使用 Queue 模块(包括调试器)的每个人。

    【讨论】:

    • 为什么这不是 VSCode 等其他 IDE 的问题?调试器使用顶级模块名称而不是将队列存储在包中是一种好习惯吗?我会尝试将您的解决方案与包一起使用,然后返回
    • 刚试了下,效果不错。我在 src 中做了一个 myFolder 文件夹并将 Queue.py 放入其中。现在调试器工作,虽然问题仍然悬而未决。调试器(或任何其他工具)应该使用顶级名称吗?
    • 要回答您的问题,是的,所有工具都应该能够使用 python/Lib 库(否则,它们必须重新实现并创建 python 已经内置的许多东西的私有副本)。预计其他库不会影响 Python 内置函数(通常的过程是创建您自己的顶级包并将其他东西放在它下面)——否则,您可能会破坏其他 stdlib 模块,因为 stdlib 本身并不希望这样做被阴影..
    猜你喜欢
    • 2017-01-01
    • 1970-01-01
    • 2015-03-06
    • 1970-01-01
    • 1970-01-01
    • 2012-11-25
    • 1970-01-01
    • 2020-08-26
    • 1970-01-01
    相关资源
    最近更新 更多