python - 无法在python2.7中安装lxml

标签 python python-2.7 lxml linux-mint

我正在尝试使用 sudo pip install lxmlsudo pip install --upgrade lxml 在 vi​​rtualenv 中安装 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 已经预装。

最佳答案

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


这个错误:

/usr/bin/ld: cannot find -lz

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

因为你不是在 Windows 上,所以你实际上根本没有 zlib 的可能性非常小......但是很可能你没有 zlib< 的开发文件。在某些平台上,尤其是许多 Linux 发行版,包通常被分成单独的部分。例如,运行时需要的 zlib 部分可能在名为 zlib 的包中,而构建其他需要 zlib 的程序所需的部分在名为 zlib-devzlib-devel 的包中。具体细节取决于您的具体平台。

也就是说,如果您没有zlib 开发文件,您可能没有libxml2libxslt 开发文件文件,因为我不知道在哪个平台上安装这些文件也不会引入 zlib 文件。

无论如何,由于您没有告诉我们您是哪个平台(如果是 Linux,则为发行版),我不知道要使用哪个包管理器,包的名称等等,但是适合您的平台的任何内容。


还有:

I already have python-lxml installed

您真的不应该同时使用发行版的包管理器和 pip 安装相同的包;这是迷惑自己的好方法。

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

关于python - 无法在python2.7中安装lxml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26372210/

相关文章:

python - 如何在#! 中识别 Python 版本使用环境变量

python - 为什么 ListView 不显示模板中的数据?

python - self[] 在方法中是什么意思?

python - 解析xml文件并输出到文本文件

python - 使用pyxll将python集成到excel中...... lxml模块有问题

python - Xpath vs DOM vs BeautifulSoup vs lxml vs other 解析网页的最快方法是什么?

python - 在组小部件内添加两个水平对齐的单选按钮

python - 嵌套构造函数。为什么需要它?

sqlite - sqlalchemy - (ProgrammingError) 可以解释 8 位字节串

python - Python 中 len 函数如何替换文本