首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么我不能让` `pip install lxml`在virtualenv中工作?

为什么我不能让` `pip install lxml`在virtualenv中工作?
EN

Stack Overflow用户
提问于 2012-10-23 05:11:10
回答 3查看 60.1K关注 0票数 70

注意:我使用的是virtualenvwrapper。

在激活虚拟环境之前:

代码语言:javascript
复制
$ pip install lxml
Requirement already satisfied (use --upgrade to upgrade): lxml in /usr/lib/python2.7/dist-packages  
Cleaning up...  

激活虚拟环境后:

代码语言:javascript
复制
(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
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-10-23 05:14:46

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

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

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

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

代码语言:javascript
复制
apt-get install libxml2-dev libxslt-dev

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

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

另请参阅:How to install lxml on Ubuntu

票数 132
EN

Stack Overflow用户

发布于 2014-01-26 04:19:01

如果您在系统级别安装了lxml,并且希望将其迁移到不是使用--system-site-packages创建的virtualenv中,则可以将其符号链接到virtualenvdist-packages文件夹中。

virtualenv外部的python shell中:

代码语言:javascript
复制
import lxml
print lxml.__file__

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

票数 5
EN

Stack Overflow用户

发布于 2018-07-19 01:24:08

你最有可能要找的是:Microsoft Visual C++ 14.0 is required (Unable to find vcvarsall.bat)

查找visual studio网站并进入:"Tools for visual studio“在底部,单击展开它。在顶部的"Build Tools for Visual Studio 2017“旁边选择Download。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13019942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档