Anconda下解决lxml中没有etree的问题(更新lxml后无法加载etree)

刚写完立马来打脸了,新进来的可以先看问题开始的部分在回上来看这里

以下解决方法适用于不适用scrapy爬虫框架的同学,不然的话安装scrapy后依然会给升级lxml,然后又不能使用etree模块

这次的解决方案应该是没问题,两方面丢兼顾了。直接在anconda的cmd中先安装conda install scrapy安装完后再键入conda install lxml==3.7.2安装这个版本的lxml就可以了(安装时会提示降级其他依赖库选择y就行),scrapy也能用,etree模块直接也能使用。原因好像是因为最新版本的lxml已经不再有etree模块了

 

问题

    环境:Anconda(python3.7)+pyharm

使用pycharm引用lxml库中的etree时,代码编辑的时候不飘红,运行却报错找不到指定模块!

Anconda下解决lxml中没有etree的问题(更新lxml后无法加载etree)_第1张图片

解决

    Anconda下卸载lxml库,选中lxml右击,mark for removal,在点击右下角Apply即可删除lxml库

Anconda下解决lxml中没有etree的问题(更新lxml后无法加载etree)_第2张图片

删除后在Anconda里

Anconda下解决lxml中没有etree的问题(更新lxml后无法加载etree)_第3张图片

点击等会你要使用lxml的环境的绿色箭头,Open on terminal,会打开cmd窗口,输入pip install lxml

等待安装完成

然后重新运行你的py文件你会发现不会报错了

还有第二个解决方法,我从其他博客看到的也没有试过

from lxml import html
text=```xxx```//测试的html文本
etree = html.etree
htmlDiv = etree.HTML(text)
title = htmls.xpath("//meta[1]/@content")
print(title)

 

原因

   我也不是特别清楚,也是我自己发现的。似乎Anconda安装的lxml不能直接这样调用etree,直接使用原生python3.7+pycharm也可以避免这个问题,但是原生python似乎安装不了scrapy的爬虫框架,所以我才使用了anconda,谁知道anconda又出现这样的毛病。可能原生python似乎安装不了scrapy的爬虫框架是我自己的问题(1.安装时会提示没有c++编译套件    2.安装不了twisted,这个现在好像还只有2.7支持,从其它途径下载支持3.x的我运行的时候又会报错没有win32api库,这个win32api库似乎很早就不支持3.x了,我也不是很清楚。)红字都是我这边自己认为的,还没有解决的。也希望有了解的能留言

下一篇可能就是anconda也安装不了scrapy的解决办法了

你可能感兴趣的:(python)