您的位置:首页 > 编程语言 > Python开发

Python module install

2015-05-28 16:45 323 查看

(一). 关于 lxml

lxml官方吹牛说它是Python中功能最全、最易用的XML和HTML的解析器。


easy_install 安装:




wget https://bootstrap.pypa.io/ez_setup.py -O - | python

参考:https://pypi.python.org/pypi/setuptools


不建议采用apt安装pip和easy,命令如下:


sudo apt-get install python-setuptools python-pip


lxml安装(ubuntu 15.04下,根据python版本选择对应的lxml):


sudo apt-get install python2.7-lxml python3-lxml



参考:http://lxml.de/installation.html


安装完lxml之后,就可以轻松安装 pyquery等等一系列xml文档解析类模块:


easy_install pyquery


下面是悲惨史:



如果直接使用pip或者easy_install安装,可能会出现一系列错误,例如:


src/lxml/lxml.etree.c:8:22: fatal error: pyconfig.h: No such file or directory

Exception: Command "./configure --disable-dependency-tracking --disable-shar


error: command 'x86_64-linux-gnu-gcc' failed with exit status 4



SF问答中一般的解决方法是:

sudo apt-get install libxml2 libxslt1.1 libxml2-dev libxslt1-dev python-libxml2 python-libxslt1 python-dev python-setuptools libxslt-dev zlib1g-dev
easy_install lxml || pip install lxml

但我试过之后无一成功(可能是系统及环境不同)…

总结了一下失败的原因,主要是依赖包 libxsltl、libxml、python-dev未安装,或者系统swap不够所致;

但其实直接用apt-get安装lxml的时候发现它仅仅依赖于:libxml2、libxslt1.1,

何况这还是官方推荐的安装方法。。因此遇到问题,找官网比先摆渡好。

参考:pip install lxml errorInstalling lxml with pip...





(二). pymssql安装

模块pymssql安装依赖于freetds,这确实是一个败笔,也是python对SQLServer支持如此之差的一个重要原因。

安装过程同上面的lxml一样跌宕起伏,主要原因出在freetds上。参考国外某大神的博文后解决:

Troubleshooting pymssql installation on Ubuntu,过程如下:

easy_install pymssql

如果上面这条命令执行成功了,那么可以跳过下文……

否则,请先下载pymssql源码:

wget -q https://github.com/pymssql/pymssql/archive/master.zip unzip -q master.zip
cd master
sudo python setup.py install

如果出现错误提示:Error: _mssql.c:8:22: fatal error: pyconfig.h: No such file or directory

sudo apt-get install python-dev

如果还报错: Error: _mssql.c:314:22: fatal error: sqlfront.h: No such file or directory

sudo apt-get install freetds-dev

然后再安装setup.py 就OK了!

事实证明本案的关键在于:Python和 freeTDS 的开发包是否安装。

最后,只能用一句作者的原话来表达我的心情:


Installing pymssql on Ubuntu 13.10 was not an easy task.

深表同意。与本人的经历如出一辙。





(三). 一点吐槽

Python跨平台相比Java跨平台的一大劣势是,很多py模块依赖或绑定部分linux下的C-Lib包,

譬如上文所述的libxml、libxslt以及freetds,expect之于Pexpect 等等;

虽然Java中也有不少Native实现,但基本上跨平台兼容性都比较好。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: