lxml安装遇到的问题

今天需要在自己的电脑上安装Python。这倒好说,驾轻就熟,很快就安装完成,并且将Python加到了环境路径中。但是在运行程序的时候发现好多一些package没有,这显然是因为我的Python中没有安装这些包导致的。于是就安装pip,这个也很快就下载并安装成功,但是执行pip的时候竟然说 这不是一个内部命令,奇怪,我之前在公司的电脑里也安装过,并没有遇到这个问题呀。于是上网找资料,原来是这个pip的路径也需要添加到环境变量中。添加完之后发现还是报同样的错误,这就奇怪了。再重新打开一个新的终端,再次执行pip命令,结果好了。看来需要重新打开一个终端才能让之前的设置生效。

然后就是安装lxml这个包了。执行

pip install lxml
最后竟然又出现了错误。关键错误信息如下:

    building 'lxml.etree' extension
    error: Microsoft Visual C++ 9.0 is required (Unable to find vcvarsall.bat). Get it from http://aka.ms/vcpython27
从字面意义理解,是需要Microsoft Visual C++ 9.0,而我的电脑中已经安装了Visual Studio 2010了呀。后来在网上查,原来是在windows下使用pip安装包的时候需要机器装有vs2008,别的版本还不行。如果不想安装VS2008,可以安装 Microsoft Visual C++ Compiler for Python 2.7

安装完这个Visual C++的文件后,再次安装lxml,竟然还是错误。不过这次的错误和上一次有所区别,错误提示内容为:

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

src\lxml\includes\etree_defs.h(14) : fatal error C1083: Cannot open include file: 'libxml/xmlversion.h': No such file or directory
c:\users\xzfeng\appdata\local\temp\xmlXPathInit0wevj7.c(1) : fatal error C1083: Cannot open include file: 'libxml/xpath.h': No such file or directory
这个大多是因为在对C代码在编译的时候没有找到对应的文件导致的。简单来说,解决方法要么就安装它提示所缺失的文件,从而使得编译行为可以顺利进行下去;还有一个方法就是安装.wheel版本,因为该版本是已经prebuild过的版本,在本机上安装已经不需要在重新编译一下了。当然还有更便捷的方法,如下这篇Stack Overflow上找到的关于这个问题的帖子: 点击打开链接

里面有两个解决方法,方法一有一些麻烦,没有去试,应该能解决问题;方法二超级简单,舍弃用pip来安装,直接用easy_install来安装,果然什么问题也没有遇到,很顺利便安装成功了。

easy_install lxml

真是选对了工具能给你节省太多时间了。

[更新2016/08/28]使用easy_install的方法并不是每次都能成功。屡试不爽的方法还是通过.wheel来安装。当所有方法都试了,仍然没能安装成功的话,试一试用wheel安装吧,百分百成功。

此文也有别的解决方法。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值