美文网首页Python开发中遇到的各种坑
Python XML No module named etree

Python XML No module named etree

作者: Magna | 来源:发表于2018-11-25 23:06 被阅读0次

    在使用Python解析XML的过程,使用以下import代码:

    import xml.etree.ElementTree as ET
    

    时遇到莫名其妙的 ImportError: No module named etree.ElementTree错误

    使用了各种方法调试,包括尝试重新pip install,pycharm里试找xml包安装,完全无效。

    因为当时考虑到系统上装了python2.7和python3.7两个版本,并且没有使用合适的python环境管理工具,而是度娘了一个可能存在问题的,重命名python2.exe ,python3.exe的方法管理不同的python版本的方法,于是卸载了机器上的所有python环境,重新使用conda尝试对不同版本的python进行管理,期间还跳了一个坑,安装了清华开源镜像(https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/)提供的conda工具,遇到无法解决的源访问问题,只好重新卸载,安装了官方的anacond版,总算问题解决。

    重新配置环境以后,在pycharm里测试了两个版本的python环境,import xml.etree.ElementTree as ET 错误继续报出,几乎开始怀疑人品。

    最后求助于百度,搜索了很久,网友们好像都挻顺利的,几乎没人提过有这种情况。

    后来,终于在一个不起眼的角落看到了这么一句话:不要用xml 作为文件名。

    于是立刻把代码文件命名成了xml.py,马上重命名,再运行。结果还是不行,仔细排查,发现生成的xml.pyc文件还存在,有可能是它造成的影响,删了重试,终于顺利运行。

    Python引用包的时候应该是先在代码文件所在的文件夹查找,把文件名命名为xml.py时,import xml.etree.Element 这一句就在当前文件夹找到了自身源文件,自己写的xml.py里面根本就没有etree.Element这些模块,当然是要报错了。

    PS:发现一个诡异的事情,pycharm里的 git管理工具也对xml.py这个文件标红,并且所在package的init.py也标红,无法推送到git云端,更改文件名以后,该文件的红名消失,可以上传。init.py的坑还在,继续耿总吧。

    相关文章

      网友评论

        本文标题:Python XML No module named etree

        本文链接:https://www.haomeiwen.com/subject/uqomqqtx.html