为什么我不能得到`PIP安装lxml`到的virtualenv内工作?(Why can't

2019-07-01 20:07发布

注:我使用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

Answer 1:

你可能已经LXML安装在系统中,也许是安装在由于系统包。 因此,在第一次尝试( pip install lxml无活性的virtualenv)不失败,但它也不会安装; 真的没有做任何事情。

在virtualenv中,默认情况下,系统包被忽略。 因此,PIP认为LXML未安装。 因此,它试图把它安装到你的虚拟环境。

LXML包含需要以正确地安装到被编译的C模块。 然而,与C模块的编译依赖于其已经安装,以及一些“开发库”你。 这些开发库C库,而不是Python,这样PIP将无法从互联网自动获取它们,为你安装它们。

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

apt-get install libxml2-dev libxslt-dev

这将安装libxml2和发展的libxslt库到本地系统。 如果您重新尝试安装LXML,C模块编译步骤应该工作,因为现在这些开发库是您的系统上。

你收到错误信息是由于这些库人失踪(在libxml/xmlversion.h: No such file or directory的错误消息的一部分)。

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



Answer 2:

为CentOS用户:获得时:

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

做:

sudo yum install libxslt-devel libxml2-devel


Answer 3:

如果您lxml安装在系统级,并希望将其迁移到一个virtualenv ,你没有与创建--system-site-packages ,你可以符号链接到你virtualenvdist-packages文件夹。

外面你virtualenv ,在Python外壳:

import lxml
print lxml.__file__

就我而言,它的发现/usr/lib/python2.7/dist-packages 。 将会有一个LXML文件夹和鸡蛋的信息文件。 无论您的virtualenv是,进入它的/lib/python-xy/dist-packages文件夹(你可能需要创建dist-packages ),以及符号链接库文件夹和鸡蛋都进去了。



Answer 4:

你最有可能在寻找这样的: 微软的Visual C ++ 14.0需要(无法找到vcvarsall.bat)

寻找视觉工作室的网站,并进入“工具Visual Studio的”在底部,通过单击展开。 选择旁边的“构建工具为Visual Studio 2017年”顶部下载。



文章来源: Why can't I get `pip install lxml` to work within a virtualenv?