无法在python2.7中安装lxml

时间:2014-10-14 23:41:55

标签: python python-2.7 lxml mint

我尝试在sudo pip install lxmlsudo pip install --upgrade lxml的virtualenv中安装lxml,但在以下两种情况下都会得到以下结果:

x86_64-linux-gnu-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-z,
relro -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes    
-D_FORTIFY_SOURCE=2 -g -fstack-protector --param=ssp-buffer-size=4 -Wformat 
-Werror=format-security build/temp.linux-x86_64-2.7/src/lxml/lxml.etree.o -lxslt 
-lexslt -lxml2 -lz -lm -o build/lib.linux-x86_64-2.7/lxml/etree.so

/usr/bin/ld: cannot find -lz

collect2: error: ld returned 1 exit status
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

----------------------------------------
Cleaning up...
Command /usr/bin/python -c "import setuptools, 
tokenize;__file__='/tmp/pip_build_root/lxml/setup.py';
exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), 
__file__, 'exec'))" install --record /tmp/pip-nmFOYf-record/install-record.txt 
--single-version-externally-managed --compile failed with error code 1 in 
/tmp/pip_build_root/lxml
Storing debug log for failure in /root/.pip/pip.log

我已经尝试了所有发布的解决方案here,这意味着我安装了libxml2-devlibxslt-devpython-dev,并且我还安装了build-essential
我目前正在运行Linux Mint 17 Debian Based,它使用apt-get作为包管理器 python-lxml已经预先安装。

2 个答案:

答案 0 :(得分:7)

lxml取决于各种C库,您必须安装这些C库 - 包括它们的开发文件(标题,.so.a库等) - 要构建lxmlinstallation文档解释了在特定平台上构建所需的先决条件。


此错误:

/usr/bin/ld: cannot find -lz

...表示您缺少的先决条件是libz,即zlib

由于您不在Windows上,因此您实际上根本没有zlib这是非常不可能的......但是您似乎没有开发zlib的文件。在某些平台上,最值得注意的是许多Linux发行版,软件包通常分成不同的部分。例如,运行时所需的zlib部分可能位于名为zlib的包中,而在名为zlib的包中构建需要zlib-dev的其他程序所需的部分或zlib-devel。具体细节取决于您的确切平台。

话虽如此,如果您没有zlib个开发文件,您可能也没有libxml2libxslt个开发文件,因为我不知道安装那些也不会载入zlib文件的任何平台。

无论如何,既然你还没有告诉我们你是哪个平台(和发行版,如果是linux),我就不知道要使用什么包管理器,包命名是什么等等,但做适合您平台的任何事情。


此外:

  

我已安装python-lxml

您真的不应该与发行版的软件包管理器和pip一起安装相同的软件包;这是一个让自己迷惑的好方法。

但无论如何,很可能你从二进制包安装python-lxml,而不是从源安装,这意味着你不需要构建要求。现在你正在尝试从源代码构建它,这意味着你可以这样做。

答案 1 :(得分:3)

在基于ubuntu的Linux发行版上,您可以使用:

sudo apt-get install zlib1g-dev