无法在python2.7中安装lxml

hel*_*ado 5 python lxml linux-mint python-2.7

我试图在virtualenv中安装lxml sudo pip install lxml,sudo pip install --upgrade 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
Run Code Online (Sandbox Code Playgroud)

我已经尝试了所有的解决方案张贴在这里,这意味着我有libxml2-dev,libxslt-dev而且python-dev安装和我还装build-essential
我目前Linux Mint的17基于Debian它使用运行apt-get的包管理器.
python-lxml已经预装了.

aba*_*ert 7

lxml取决于各种C库,你必须安装这些C库 - 包括他们的开发文件(头文件.so.a库等) - 来构建lxml.在安装文档解释什么前提条件,你需要建立自己特定的平台上.


这个错误:

/usr/bin/ld: cannot find -lz
Run Code Online (Sandbox Code Playgroud)

...意味着你缺少的先决条件是libz,又名zlib.

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

话虽这么说,如果你没有zlib开发文件,你可能也没有libxml2libxslt开发文件,因为我不知道任何平台安装它们也不会拉入zlib文件.

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


也:

我已经python-lxml安装好了

你真的不应该和发​​行版的软件包管理器一起安装相同的软件包pip.这是混淆自己的好方法.

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