anaconda对应Python版本引起的lxml模块报错解决

lxml模块报错:ImportError:cannot import name 'etree' from 'lxml'

pycharm导入模块lxml,没有标红,IDE的python的第三方库中也有lxml,执行代码时却报错


原因分析:

可能电脑中存在多个Python版本,安装的lxml与在IDE中使用的Python解释器版本不符,此时就会报错

找到Anaconda\Lib\site-packages中的lxml或者python\Lib\site-packages,鼠标移动到lxml文件查看其兼容的python版本,如cp311即兼容python3.11,查看其是否兼容


安装anaconda时会默认安装最新版本,其对应Python版本也较高,此时再进行pip install lxml或者conda install lxml都会默认安装与anaconda中Python匹配的版本,此时IDE对应的python中一般不会存在lxml模块,应该存在于Anaconda\Lib\site-packages,但是如果手动导包,即从Anaconda\Lib\site-packages中找到lxml包,然后复制到python\Lib\site-packages,就会造成IDE中lxml模块报错。这也就解释了为什么IDE的python的第三方库中有lxml,由于不兼容而报错


解决方案1:

解决方案之一是在anaconda中添加一个在IDE中使用的Python环境

打开cmd,运行conda create -n env_name list of packages

其中 -n 代表 name,env_name 是需要创建的环境名称,list of packages 则是列出在新环境中需要安装的工具包。

简而言之执行

conda create -n py38 python=3.8.10

就是在anaconda中新建一个名为py38的环境,其中python的版本为3.8.10

执行conda activate py38激活环境

conda activate py38

或者打开Anaconda Navigator手动切换

 然后执行pip uninstall lxml卸载lxml

pip uninstall lxml

最后执行pip install lxml就会自动安装与IDEpython版本匹配的lxml版本了

pip install lxml

如果IDE还报错,那就找到Anaconda\Lib\site-packages中的lxml把其复制到python\Lib\site-packages去


解决方案2:

指定python版本进行下载

pip版本号 install lxml -i 镜像源

大一在读,不足请指正

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值