lxml安装正常,import lxml正常,from lxml import etree 报错,查了很多资料,摘两个“网友普遍觉得好用但对我的问题并没有用”的方法于下,也许能解决其他人的问题:
1、电脑中具有 lxml 同名文件,重命名即可。
2、高版本lxml没有etree模块。有网友确定lxml4.2.5版本带有etree模块,且该版本lxml支持python3.7.4版本。安装命令:
pip install lxml==4.2.5
疑问汇总:
问题1:我使用anaconda管理python包,查询发现pip安装第三方包的路径为E:\python\AnacondaForPython\NewInstall\Lib\site-packages
而不是E:\python\python\Lib\site-packages,为什么?不是说python自带pip?这个pip显示是anaconda下啊。
问题2:在做项目中pycharm我的环境选择一直是:
因此python3.8中确实缺少很多在用的包,是无法直接运行的。我根据网上教程修改python3.8/python.exe与anaconda自带的python.exe,以及系统环境变量配置,但是之后,在命令行中始终只能成功调用python3.8,而无法调用python3.7,为什么?
问题3: 本文一开始所提到的from lxml import etree 报错,是在命令行运行python3.8存在的,而通过Anaconda Prompt 启动python3.7可以成功运行。于是我把E:\python\AnacondaForPython\NewInstall\Lib\site-packages整个文件夹(第三方包)复制到默认python版本下E:\python\python\Lib\site-packages(清空原住民),结果python3.8仍然报错,不知道是因为有其他依赖没有一起移过来,还是因为这并不是根本原因?目前无解。
后记:
针对anaconda与原装python是否冲突与混乱的问题,暂时无解。
针对这个报错,打算用anaconda环境来处理,再度尝试“如何启动不同版本python”,只需添加环境变量即可,那么之前为什么一直失败???因为
路径问题,路径不要精确到python.exe文件,而是到python.exe所在的父目录!!!
错误写法:
正确写法:
要成功启动不同版本python,还要注意一点重命名,每个python.exe不要重名。
(says:虽然利用包完整的python3.7解决了,但是仍未知python3.8为何报错,以及,我在cmd无论是pip / conda 安装,路径均为anaconda下,也就是说原住民 python3.8 的包路径无人问津,似乎只能通过pycharm选择环境后“+”来安装了?)