背景

早上折腾Python3.4.3下安装lxml简直太惨痛了。

问题描述

最初直接pip安装:

pip install lxml

提示查找编译器出错:

Error: Microsoft Visual C++ 10.0 is required (Unable to find vcvarsall.bat)

因为安装有VS2015,尝试替换使用VS2015的C++编译器,修改环境变量:

set VS100COMNTOOLS=%VS140COMNTOOLS%

然后再次pip安装,提示:

ValueError: ['path']

怀疑可能真的是需要VS2010版本的,于是下载安装VS2010 Express,再次pip,仍旧提示:

ValueError: ['path']

在stackoverflow上找到可能是因为用的x64版Python的缘故,给出的解决方法是安装Microsoft SDK,太麻烦遂放弃。

试了试pywin32,没效果,放弃。

在PyPi上找到lxml页面,发现有exe版,但没有支持Python3.4的。

解决方法

找到stackoverflow上另一个解决方法,用wheel:

安装wheel

pip install wheel

下载whl文件

http://www.lfd.uci.edu/~gohlke/pythonlibs/中找到对应版本的whl文件,如我需要的就是

lxml-3.4.4-cp34-none-win_amd64.whl

下载并保存

安装

如果whl文件在cmd当前目录下,执行:

pip install lxml-3.4.4-cp34-none-win_amd64.whl

否则pip install lxml-3.4.4-cp34-none-win_amd64.whl需要加上路径,不然提示找不到文件。

安装会提示:

Processing c:\users\zhantong\lxml-3.4.4-cp34-none-win_amd64.whl
Installing collected packages: lxml
Successfully installed lxml-3.4.4

这样就是安装成功了,可以试试import lxml了。

参考: