在安装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的。