70

注意:我正在使用 virtualenvwrapper。

在激活虚拟环境之前:

$ pip install lxml
Requirement already satisfied (use --upgrade to upgrade): lxml in /usr/lib/python2.7/dist-packages  
Cleaning up...  

激活虚拟环境后:

(test-env)$ pip install lxml
force/build/lxml/src/lxml/includes/etree_defs.h:9:31: fatal error: 
libxml/xmlversion.h: No such file or directory

compilation terminated.

error: command 'gcc' failed with exit status 1

----------------------------------------
Command /home/chaz/dev/envs/test-with-system-python-force/bin/python2
.7 -c "import setuptools;__file__='/home/chaz/dev/envs/test-with-
system-python-force/build/lxml/setup.py';exec(compile(open(__file__).
read().replace('\r\n', '\n'), __file__, 'exec'))" install --record 
/tmp/pip-bJ6Q_B-record/install-record.txt --single-version-externally
-managed --install-headers /home/chaz/dev/envs/test-env/include/site/python2.7 failed with error code 1 in 
/home/chaz/dev/envs/test-env/build/lxml
Storing complete log in /home/chaz/.pip/pip.log
4

4 回答 4

133

您可能已经在系统上安装了 lxml,可能是由于系统软件包而安装的。因此,第一次尝试(pip install lxml没有活动的 virtualenv)不会失败,但也不会安装它;它真的什么也没做。

在 virtualenv 中,默认情况下,系统包被忽略。因此,pip认为没有安装lxml。因此,它会尝试将其安装到您的虚拟环境中。

lxml 包含需要编译才能正确安装的 C 模块。但是,这些 C 模块的编译依赖于您已经安装了一些“开发库”。这些开发库是 C 库,而不是 Python,因此 pip 将无法自动从 Internet 获取它们并为您安装它们。

因此,您需要自己安装这些开发库,很可能使用您的包管理器。在 Debian 系统(如 Ubuntu)中,这是...

apt-get install libxml2-dev libxslt-dev

这会将 libxml2 和 libxslt 开发库安装到您的本地系统。如果您再次尝试安装 lxml,C 模块编译步骤应该可以工作,因为现在这些开发库已在您的系统上。

您收到的错误消息是由于缺少这些库(libxml/xmlversion.h: No such file or directory错误消息的一部分)。

另请参阅:如何在 Ubuntu 上安装 lxml

于 2012-10-22T21:14:46.343 回答
19

对于 centos 用户: 获取时:

错误:命令“gcc”失败,退出状态为 1

做:

sudo yum install libxslt-devel libxml2-devel
于 2014-01-14T09:32:53.540 回答
5

如果您已在系统级别安装lxml,并且想要将其迁移到您virtualenv没有使用.--system-site-packagesvirtualenvdist-packages

在您的virtualenv, 在 python shell 中:

import lxml
print lxml.__file__

就我而言,它位于/usr/lib/python2.7/dist-packages. 会有一个 lxml 文件夹和 egg-info 文件。无论您的 virtualenv 在哪里,进入它的/lib/python-x.y/dist-packages文件夹(您可能需要创建dist-packages),并将库文件夹和 egg 符号链接到其中。

于 2014-01-25T20:19:01.103 回答
-2

您最有可能在寻找这个: Microsoft Visual C++ 14.0 is required (Unable to find vcvarsall.bat)

查找 Visual Studio 网站并进入:底部的“Visual Studio 工具”,单击展开。选择顶部“Build Tools for Visual Studio 2017”旁边的下载。

于 2018-07-18T17:24:07.773 回答