使用名为io.py的PyCharm模块正确调试

时间:2017-12-27 08:39:31

标签: python debugging pycharm

看起来名为io.py的模块(在我的一些软件包中)无法在PyCharm(2017.3.1社区)中调试 - 断点从未命中。 重命名此模块可以解决问题。

问题是:在python中不建议命名模块io.py

  • 或者它只是一个PyCharm功能/错误?
  • 是否有已知的解决方法?

由于

2 个答案:

答案 0 :(得分:2)

这是 Pycharm 的一个错误——人们可以随意命名他们的模块,包括 io.py。

要修复较新版本的 Pycharm,请找到文件 pydevd_dont_trace_files.py。就我而言,Pycharm 安装在 /opt/pycharm-2020.3,因此该文件位于:

/opt/pycharm-2020.3/plugins/python/helpers/pydev/_pydevd_bundle/pydevd_dont_trace_files.py

找到类似于以下内容的行:


    if IS_PY3K:
        # if we try to trace io.py it seems it can get halted (see http://bugs.python.org/issue4716)
        DONT_TRACE['io.py'] = LIB_FILE

并注释掉这行 DONT_TRACE 并重新启动 Pycharm。

当然,这行必须是出于正当理由而放入的,所以我通常在调试完成后取消注释。

答案 1 :(得分:0)

您可以在python文档中找到io

https://docs.python.org/2/library/io.html

io是一个内置模块:

  

io模块为流处理提供了Python接口。在Python 2.x中,这被建议作为内置文件对象的替代,但在Python 3.x中,它是访问文件和流的默认接口。

您无法创建名为内置模块的.py文件,它们会重复出现。