为什么我不能让"pip install lxml"在虚拟环境中工作?



注意:我正在使用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('rn', '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

您可能已经在系统上安装了LXML,也许是由于系统软件包而安装的。因此,第一次尝试(没有Active Virtualenv的pip install lxml)不会失败,但也不会安装它。它确实什么都没做。

在Virtualenv中,默认情况下,系统软件包被忽略。因此,PIP认为未安装LXML。因此,它试图将其安装到虚拟环境中。

lxml包含需要编译的C模块才能正确安装。但是,这些C模块的汇编也取决于您已经安装了一些"开发库"。这些开发库是c库,而不是python,因此这些库将无法自动从互联网中获取它们并为您安装。

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

apt-get install libxml2-dev libxslt-dev

这将在您的本地系统中安装Libxml2和libxslt开发库。如果您再次尝试安装LXML,则C模块编译步骤应该起作用,因为现在这些开发库已在您的系统上。

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

另请参见:如何在Ubuntu上安装LXML

for centos用户:获取时:

错误:命令'GCC'失败,退出状态1

做:

sudo yum install libxslt-devel libxml2-devel

如果您在系统级别安装了lxml,并希望将其迁移到没有使用--system-site-packages创建的virtualenv中,则可以将其链接到virtualenv'S dist-packages文件夹中。

在您的virtualenv外,在Python壳中:

import lxml
print lxml.__file__

就我而言,它在/usr/lib/python2.7/dist-packages中找到。将有一个LXML文件夹和鸡蛋式文件。无论您的Virtualenv在哪里,都可以进入其/lib/python-x.y/dist-packages文件夹(您可能需要创建dist-packages),然后同时列表文件夹和鸡蛋。

您很可能正在寻找:需要Microsoft Visual C 14.0(无法找到VCVARSALL.BAT)

寻找Visual Studio网站,然后进入:底部的" Visual Studio工具",通过单击来扩展它。在顶部选择"为Visual Studio 2017构建工具"旁边的下载。

最新更新