1. 主页 > vs安装问题 > VS2008安装问题 >

lxml在win10下python2.7上的安装,vs2008

python的pip install用不了,所以只能自己下source安装,耗时一整天,经历无数坎坷,终于搞定了。

 

/*  首先下载  lxml

我奔着最新的下载的,lxml-4.2.5.tar.gz

下载之后解压,然后放那先别动。 */

 

后来发现下载的lxml-4.2.5不能Import etree。 就改下载lxml2.3

lxml-2.3.win32-py2.7

由于电脑是64位,所以需要下载win32的egg。

下载之后放那别动。

 

之后的步骤参考

http://www.cnblogs.com/imlucky/archive/2012/10/29/2744992.html

一、下载安装libiconv

下载  libiconv 

可以直接下载这个安装包

在C盘根目录下创建文件夹opt,在opt里创建include和lib文件夹

libiconv安装好后,其根目录下的include,将iconv.h放入C:\opt\include,进入lib将libiconv.lib放入C:\opt\lib中,并改名为iconv.lib

 

二、下载编译libxml2

下载 libxml2, http://xmlsoft.org/downloads.html, 如果网址打不开也可以直接在git上下载  libxml2 

我下载的是 libxml2-2.7.8

将其解压到C盘根目录下,进入win32文件夹,然后先根据他的readme,先打开vs command Prompt ,

然后进入configure.js的文件路径下

再运行编译设置

cscript configure.js compiler=msvc prefix=c:\opt include=c:\opt\include lib=c:\opt\lib debug=yes

在这就可以看出,其实之前的opt, include和lib都可以不必设在C盘,可以放在其他盘下,在这里设置更换地址即可。

最后再在vs command prompt里输入nmake /f Makefile.msvc,回车即可。

编译的时候回遇到一个错误,不太确定是因为我自己不小心改了什么还是文件本身的错误。

根据错误提示发现根目录下的testapi.c里第294行

问号后面没有加单引号,所以报错,加了单引即可。

编译成功后会在win32下出现bin.msvc文件夹,里面有libxml2的.lib和.dll文件。

 

三、下载编译libxslt

下载libxslt,强烈建议下载libxslt-v1.1.28, 太新或者太旧都会出现unresolved external symbol,我看着就头大。

链接点我

像安装libxml2一样,进入到win32文件夹下,运行编译设置,在直接运行nmake install即可。

 

四、安装libxml2

到libxml2根目录下的python文件夹下,运行setup.py。其实我也不确定需不需要先安装,你们可以试试,但反正装了没错。

注意!在这里setup会报一个错

ValueError: path '/usr\bin\iconv.dll' cannot be absolute

怎么回事呢,先进到最顶层抛出异常的util.py里看看是啥错,根据路径打开utils.py,看204行

发现

看代码和注释发现,这是因为文件路径是'/usr/bin/iconv.dll',以  /  开头了,所以抛出了异常。根据错误提示发现这个路径是从setup传过去的,所以需要在libxml2的setup.py文件里改。

改成什么呢?因为显而易见这个路径是就是为了找到dll文件,所以干脆直接在libxml2的win32文件夹里建个dll文件夹

 

到之前下的libiconv根目录下的bin目录下,将libiconv2.dll复制进 libxml2-2.7.1/win32/dll 里,并改名为iconv.dll

 

到libxslt编译好的bin.msvc下,我这的路径是C:\libxslt-v1.1.28\libxslt-v1.1.28\win32\bin.msvc,将libexslt.dll和libxslt.dll复制进 libxml2-2.7.1/win32/dll

 

将libxml2自身的dll也复制进libxml2-2.7.1/win32/dll 里,我这libxml2.dll的路径是C:\libxml2-sources-2.7.1\libxml2-2.7.1\win32\bin.msvc

 

因为这四个dll在安装的时候都会用,都放进  libxml2-2.7.1/win32/dll  后是这样的

然后别忘了改setup.py文件,打开C:\libxml2-sources-2.7.1\libxml2-2.7.1\python下的python文件,把

ROOT = r'/usr'     改为    ROOT = r'C:\libxml2-sources-2.7.1\libxml2-2.7.1\win32\dll'

将下面的dlls = map(lambda dll: os.path.join(ROOT,'bin',dll),dlls) 改为 dlls = map(lambda dll: os.path.join(ROOT, dll),dlls)

再运行setup.py即可。

 

五、安装lxml

/*************************安装好后发现lxml-4.2.5不能import etree,所以改下lxml-2.3*********************************

进入之前解压的lxml根目录,然后进入   /src/lxml/include

将libxml2根目录下include内的libxml文件夹、libxslt根目录下libxslt, libexslt文件夹均复制进 lxml-4.2.5/src/lxml/includes下

如下图

然后运行lxml根目录下的setup.py应该就可以了。

 

****************************安装好后发现lxml-4.2.5不能import etree,所以改下lxml-2.3**************************/

运行开头下好的lxml-2.3.win23-py2.7.exe,安装好后进入Python2.7目录下的script目录,找到esay_intall.exe,将lxml-2.3-py2.7-win32.egg拖到上面运行即可。

有其他问题欢迎找我交流。

 

本文由VS软件圈(vssoft.net)发布,不代表VS软件圈立场,转载联系作者并注明出处:https://vssoft.net/vsazwt/VS2008anzhuangwenti/2020/0727/5948.html

联系我们

在线咨询:点击这里给我发消息

微信号:PREEE8

工作日:9:30-18:30,节假日休息