Python3.5以上版本lxml导入etree报错的解决方案

在python中安装了lxml-4.2.1,在使用时发现导入etree时IDE中报错Unresolved reference

其实发现,不影响使用,可以正常运行,对于我这种要刨根问底的人不搞明白怎么能罢休了,要保证代码不红

就研究了下源码,通过源码中可以发现,html中继承了etree

看下图这里也是为啥前面出红但还是能顺利执行了

那么我们使用的时候就得变换下了:如下使用,

哎谁让etree是二进制文件了,希望下一个版本会有好的改善,通过github看源码,发现是cpython写的编译成的二进制文件,如果对见红有恐惧的,就使用如下方式解决吧

from lxml import html
html.etree.HTML("")

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Python3 关于pycharm自动导入包快捷设置的方法

    正常开发的时候,我们都手动去写要引入到包,有过java开发的同事,用过快捷键ctrl + alt + o 会自动引入所有的依赖包,pycharm也有这样的设置,看看怎么设置吧. 设置快捷键,默认ctrl + 空格,win的用户会和切换中文快捷键冲突,这里我设置的shift +1 用的时候,shift + 1 ,按两下1看看效果. 以上这篇Python3 关于pycharm自动导入包快捷设置的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • python xml.etree.ElementTree遍历xml所有节点实例详解

    python xml.etree.ElementTree遍历xml所有节点 XML文件内容: <students> <student name='刘备' sex='男' age='35'/> <student name='吕布' sex='男' age='38'/> <student name='貂蝉' sex='女' age='22'/> </students> 代码: #-*- coding: UTF-8 -*- # 从文件中读取数据 imp

  • python导入pandas具体步骤方法

    Pandas最初被作为金融数据分析工具而开发出来,因此,pandas为时间序列分析提供了很好的支持. Pandas的名称来自于面板数据(panel data)和python数据分析(data analysis).panel data是经济学中关于多维数据集的一个术语,在Pandas中也提供了panel的数据类型. 数据结构: Series:一维数组,与Numpy中的一维array类似.二者与Python基本的数据结构List也很相近,其区别是:List中的元素可以是不同的数据类型,而Array和

  • 解决Python 命令行执行脚本时,提示导入的包找不到的问题

    在Pydev能正常执行的脚本,在导出后在命令行执行,通常会报自己写的包导入时找不到. 一:报错原因 在PyDev中,test.py 中导入TestUserCase里面的py文件时,会写: from TestUserCase.Test import Test 这在命Pydev中没错,但是在命令行中确出现错误. 因为在PyDev中默认路径除了当前文件所在路劲外,还有工程根路径.而在命令行中只有当前文件所在路径.TestUserCase是test.py文件的上一级目录,所以在命令行中test.py i

  • python lxml中etree的简单应用

    我一般都是通过xpath解析DOM树的时候会使用lxml的etree,可以很方便的从html源码中得到自己想要的内容. 这里主要介绍一下我常用到的两个方法,分别是etree.HTML()和etree.tostrint(). 1.etree.HTML() etree.HTML()可以用来解析字符串格式的HTML文档对象,将传进去的字符串转变成_Element对象.作为_Element对象,可以方便的使用getparent().remove().xpath()等方法. 如果想通过xpath获取htm

  • python导入模块交叉引用的方法

    实际项目中遇到python模块相互引用问题,查资料,终于算是弄明白了. 首先交叉引用或是相互引用,实际上就是导入循环,关于导入循环的详细说明,可见我摘自<python核心编程>第二版的摘抄:Python导入循环方法. 附录给了一种解决交叉引用的方法,试了,不行,但关于交叉引用问题本身说明的很清楚,如果不清楚什么是交叉引用,可看附录一. 循环引用在python圈关注的并不多,语言上没有提供防止循环依赖的机制. 总的来说,应该在总体结构上避免模块之间互相依赖,即:A依赖B,B就不要依赖A,这也是代

  • Python3 导入上级目录中的模块实例

    python导入同级别模块很方便: import xxx 要导入下级目录页挺方便,需要在下级目录中写一个__init__.py文件 from dirname import xxx 要导入上级目录,可以使用 sys.path 首先 sys.path 的作用是:当使用import语句导入模块时,解释器会搜索当前模块所在目录以及sys.path指定的路径去找需要import的模块 所以改变思路,直接把上级目录加到 sys.path 里 import sys sys.path.append('../')

  • Python3.5以上版本lxml导入etree报错的解决方案

    在python中安装了lxml-4.2.1,在使用时发现导入etree时IDE中报错Unresolved reference 其实发现,不影响使用,可以正常运行,对于我这种要刨根问底的人不搞明白怎么能罢休了,要保证代码不红 就研究了下源码,通过源码中可以发现,html中继承了etree 看下图这里也是为啥前面出红但还是能顺利执行了 那么我们使用的时候就得变换下了:如下使用, 哎谁让etree是二进制文件了,希望下一个版本会有好的改善,通过github看源码,发现是cpython写的编译成的二进制

  • SpringBoot高版本修改为低版本时测试类报错的解决方案

    目录 高版本改低版本时测试类报错 比如在创建项目时默认的版本为2.2.2版本 然后我们修改为1.5.10的低版本 此时可以做如下修改 1.删除高版本默认导入的org.junit.jupiter.api.Test类 2.在类上添加注释@RunWith(SpringRunner.class) 3.将测试类和测试方法都修改为public 4.最后修改的测试类如下所示 高版本改低版本时测试类报错 有时在使用idea通过Spring Initailizr创建项目时,默认只能创建最近的版本的SpringBo

  • Sublime Text4 配置 Python3 环境、代码提示、编译报错的解决方案

    目录 1 配置 Python3 环境 2 配置自动代码提示 3 编译报错 1 配置 Python3 环境 单击 工具 > 编译系统 > 新建编译系统... 弹出: 替换里面的内容为: { "cmd":["G:\\CodeTools\\anaconda3\\python.exe","-u","$file"], "file_regex": "^[ ]*File \"(...*?)

  • Eclipse导入项目报错问题解决方案

    使用eclipse导入一些项目是会出现项目前有叉号的问题 总结一下解决方法: 1.修改自己的Build Path,右键项目名: 在Java build path界面将sever及jre将原有的Tomcat及jre remove之后替换成自己版本: 2.替换后如果继续报错 找到项目根目录,修改.setting目录下的org.eclipse.wst.common.project.facet.core.xml文件 将里面的版本号修改成自己的即可 3.在之前的项目中完成上面两步已经可以解决项目名报错的问

  • CentOS版本问题安装Docker报错的解决方案

    1. 版本信息 # cat /etc/system-release CentOS Linux release 7.2.1511 (Core) # uname -a Linux k8s-daniel-3 3.10.0-327.28.3.el7.x86_64 #1 SMP Thu Aug 18 19:05:49 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux 2. Docker的安装和错误 直接使用yum -y install docker进行安装, 然后无法启动.

  • 解决python3中自定义wsgi函数,make_server函数报错的问题

    #coding:utf-8 from wsgiref.simple_server import make_server def RunServer(environ, start_response): start_response('200 OK', [('Content-Type', 'text/html')]) return '<h1>Hello, web!</h1>' if __name__ == '__main__': httpd = make_server('localho

  • 解决大于5.7版本mysql的分组报错Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated

    原因: MySQL 5.7.5和up实现了对功能依赖的检测.如果启用了only_full_group_by SQL模式(在默认情况下是这样),那么MySQL就会拒绝选择列表.条件或顺序列表引用的查询,这些查询将引用组中未命名的非聚合列,而不是在功能上依赖于它们.(在5.7.5之前,MySQL没有检测到功能依赖项,only_full_group_by在默认情况下是不启用的.关于前5.7.5行为的描述,请参阅MySQL 5.6参考手册.) 执行以下个命令,可以查看 sql_mode 的内容: mys

  • android studio 3.6.1导入项目报错提示无法下载classpath里的内容

    报错: Caused by: org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration$ArtifactResolveException: Could not resolve all artifacts for configuration ':classpath'. 原因: 百度说是无法下载classpath里的内容,具体不是很清楚 解决方法: 百度到了很多方法,单个尝试都解决不了,然后把解决方法结合 在bu

  • nvm版本导致npm install报错Unexpected token '.'的解决办法

    目录 前言 npm install报错 降低node版本 升级nvm版本 总结 前言 前几天切换了node版本,顺带着升级了npm,今天使用nodemon启动node环境时发现报错,提示未安装.没安装就安装了下,结果!冒出来一大堆问题. npm install报错 我使用npm install nodemon -g直接给我报错,不信邪接着npm install cnpm -g还是报错. 这个报错我是真的看不懂,我去网上搜了下,发现也有人遇到过这个问题,好像是使用nvm-windows控制node

  • npm i报错以及解决方案实战案例

    目录 报错案例1 报错案例2 报错案例3 报错案例4 报错案例5 总结 报错案例1 npm ERR! Cannot read properties of null (reading 'pickAlgorithm') 解决方案:清理缓存后再次安装 npm cache clear --force 报错案例2 npm ERR! gyp info it worked if it ends with ok ... npm ERR! gyp ERR! cwd C:\...\node_modules\node

随机推荐