[Python]_[初级]_[使用PyCharm时不识别根包位置和Debug时报ModuleNotFoundError错误]

Posted infoworld

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Python]_[初级]_[使用PyCharm时不识别根包位置和Debug时报ModuleNotFoundError错误]相关的知识,希望对你有一定的参考价值。

场景

  1. 在使用PyCharm开发程序时,当我们Debug某个文件时,会报以下错误,什么原因?
Traceback (most recent call last):
  File "C:\\Program Files\\JetBrains\\PyCharm Community Edition 2018.2.5\\helpers\\pydev\\pydevd.py", line 15, in <module>
    from _pydevd_bundle.pydevd_constants import IS_JYTH_LESS25, IS_PY34_OR_GREATER, IS_PY36_OR_GREATER, IS_PYCHARM, get_thread_id, \\
  File "C:\\Program Files\\JetBrains\\PyCharm Community Edition 2018.2.5\\helpers\\pydev\\_pydevd_bundle\\pydevd_constants.py", line 168, in <module>
    from _pydev_imps._pydev_saved_modules import thread
  File "C:\\Program Files\\JetBrains\\PyCharm Community Edition 2018.2.5\\helpers\\pydev\\_pydev_imps\\_pydev_saved_modules.py", line 21, in <module>
    import xmlrpc.client as xmlrpclib
  File "C:\\Users\\xx\\AppData\\Local\\Programs\\Python\\Python37-32\\lib\\xmlrpc\\client.py", line 138, in <module>
    from xml.parsers import expat
ModuleNotFoundError: No module named 'xml.parsers'
  1. 在开发python项目时,不可避免的会使用package特性,把文件放到package里,但是当引用这个类时,怎么会出现无法识别package的错误?

图1:

说明

  1. 第一个问题报ModuleNotFoundError的错误,是因为项目的根包(package)名有xml,出现这个问题时,项目的src里有名为xml的包,之后就会和标准库里的xml包冲突导致识别不了标准库里的xml包。修改方式就是不要使用xml作为根包,应该使用一个根包作为名字,比如com.xxx这些.

    C:\\Users\\xx\\AppData\\Local\\Programs\\Python\\Python37-32\\lib\\xml
    
  2. 第二个是没有正确识别项目的源码根目录,导致PyCharmsrc目录也作为包目录,但其实src并不是包(没有__init__.py)。修改方式就是选中src右键->Mark Directory as -> Sources Root即可从src内开始识别包.

图2:

以上是关于[Python]_[初级]_[使用PyCharm时不识别根包位置和Debug时报ModuleNotFoundError错误]的主要内容,如果未能解决你的问题,请参考以下文章

python接口自动化框架_初级

Python面向对象-初级

如何在 PyCharm 中设置 Python 代码模板

PyCharm选中文件夹新建时Directory与Python package的区别

Python / PyCharm:运行子包模块时的差异

python初级(302) 6 对象