Bri*_*ant 69 python virtualenv virtualenvwrapper
注意:我正在使用virtualenvwrapper.
在激活虚拟环境之前:
$ pip install lxml
Requirement already satisfied (use --upgrade to upgrade): lxml in /usr/lib/python2.7/dist-packages
Cleaning up...
Run Code Online (Sandbox Code Playgroud)
激活虚拟环境后:
(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
Run Code Online (Sandbox Code Playgroud)
Mar*_*eth 124
您可能已在系统上安装了lxml,可能是由于系统软件包而安装的.因此,第一次尝试(pip install lxml
没有活动的virtualenv)不会失败,但它也不会安装它; 它真的没有做任何事情.
在virtualenv中,默认情况下会忽略系统包.因此,pip认为没有安装lxml.因此,它会尝试将其安装到您的虚拟环境中.
lxml包含需要编译的C模块才能正确安装.但是,这些C模块的编译依赖于您已经安装了一些"开发库".这些开发库是C库,而不是Python,因此pip将无法从Internet自动获取它们并为您安装它们.
因此,您需要自己安装这些开发库,最有可能使用您的包管理器.在Debian系统(如Ubuntu)中,这是......
apt-get install libxml2-dev libxslt-dev
Run Code Online (Sandbox Code Playgroud)
这将把libxml2和libxslt开发库安装到本地系统.如果再次尝试安装lxml,C模块编译步骤应该可以正常工作,因为现在这些开发库都在您的系统上.
您收到的错误消息是由于缺少这些库(libxml/xmlversion.h: No such file or directory
错误消息的一部分).
另请参阅:如何在Ubuntu上安装lxml
ela*_*ver 18
对于centos用户: 获取时:
错误:命令'gcc'失败,退出状态为1
做:
sudo yum install libxslt-devel libxml2-devel
Run Code Online (Sandbox Code Playgroud)
小智 5
如果您已lxml
在系统级别安装,并希望将其迁移到virtualenv
您未创建的那个--system-site-packages
,则可以将其符号链接到您virtualenv
的dist-packages
文件夹中.
在你的外面virtualenv
,在python shell中:
import lxml
print lxml.__file__
Run Code Online (Sandbox Code Playgroud)
在我的情况下,它被发现了/usr/lib/python2.7/dist-packages
.将有一个lxml文件夹和egg-info文件.无论你的virtualenv在哪里,进入它的/lib/python-x.y/dist-packages
文件夹(你可能需要创建dist-packages
),并将库文件夹和egg符号链接到它.
归档时间: |
|
查看次数: |
53567 次 |
最近记录: |