zl程序教程

您现在的位置是:首页 >  其他

当前栏目

lxml安装问题:Could not find function xmlCheckVersion in library libxml2. Is libxml2 installed?

安装 in not is Find Function could library
2023-09-14 09:15:01 时间

        在安装python yfinacce库时中间报告以上错误,以下为解决过程,供碰到同样问题的小伙伴参考。

        参考https://blog.csdn.net/xinhongjun12/article/details/90443119的说明,

去https://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml上下载安装文件。

        首先是下载“lxml-4.6.3-cp38-cp38-win32.whl”,安装后报错:

        64位系统需要用amd64版本? 换lxml-4.6.3-cp38-cp38-win_amd64.whl还是不行。。。

        换cp39版本的也还是不行。

        本机配置如上,Python版本是3.8.5,参考博文中说python版本于.whl文件中的cp后数字要匹配,可以3.8.5难道不应该要么cp38要么cp39嘛。。。不解。

        万般无奈,直接来行不行呢?

        $ pip install lxml

        还是不行,仍然报:

        Could not find function xmlCheckVersion in library libxml2. Is libxml2 installed?

        再试一试先安装libxml2?

        $ pip install libxml2

        也不行,报错:

        $ conda install libxml2

        可以了。。。可是,到底啥时候该用pip,啥时候该用conda呢? 

        重新尝试pip install lxml

         安装成功了。如上所示,安装工具自动下载的是lxml-4.6.4-cp310-cp310-win_amd64.whl,前面我cp38和cp39都尝试过,但是没有尝试过c310。。。

        这时我意识到可能犯了一个错误。我在base环境中运行python –version给出来的版本号是Python 3.8.5,所以我想当然地选择cp38或者cp39。这个安装成功后我想起来当前工作的虚拟环境中的Python是新安装的,版本号和base环境中可能不一样,在虚拟环境中重新执行python –version查询,返回Python 3.10.0,原来如此...!

        但是,这里遗留下一个问题:

        在https://blog.csdn.net/xinhongjun12/article/details/90443119的说明中,一上来直接就下载whl文件然后安装。如果一开始我选对了whl文件是不是会直接安装成功呢?从后面的进程来看,似乎并不是。因为我用conda安装libxml2之前是尝试过pip install lxml但是没有成功,然后conda安装libxml2之后再运行pip install lxml才下载cp310-win_amd64版本的whl文件并安装成功的。所以,看上去应该是要先安装libxml2后再安装lxml的。