在Ubuntu中安装lxml时出现问题

2024-04-28 23:44:18 发布

您现在位置:Python中文网/ 问答频道 /正文

执行此操作时出现以下错误:pip install lxml

You are using pip version 6.0.8, however version 7.1.0 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.                                                                                          
Collecting lxml
  Using cached lxml-3.4.4.tar.gz
    /usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'bugtrack_url'
      warnings.warn(msg)
    Building lxml version 3.4.4.
    Building without Cython.
    ERROR: /bin/sh: 1: xslt-config: not found
    ** make sure the development packages of libxml2 and libxslt are installed **
    Using build configuration of libxslt
Installing collected packages: lxml
  Running setup.py install for lxml
    /usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'bugtrack_url'
      warnings.warn(msg)
    Building lxml version 3.4.4.
    Building without Cython.
    ERROR: /bin/sh: 1: xslt-config: not found
    ** make sure the development packages of libxml2 and libxslt are installed **
    Using build configuration of libxslt
    building 'lxml.etree' extension
    i686-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/tmp/pip-build-RLyvkw/lxml/src/lxml/includes -I/usr/include/python2.7 -c src/lxml/lxml.etree.c -o build/temp.linux-i686-2.7/src/lxml/lxml.etree.o -w
    In file included from src/lxml/lxml.etree.c:239:0:
    /tmp/pip-build-RLyvkw/lxml/src/lxml/includes/etree_defs.h:14:31: fatal error: libxml/xmlversion.h: No such file or directory
     #include "libxml/xmlversion.h"
                                   ^
    compilation terminated.
    error: command 'i686-linux-gnu-gcc' failed with exit status 1
    Complete output from command /home/apurva/.virtualenvs/universallogin/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip-build-RLyvkw/lxml/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-9WRQzF-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/apurva/.virtualenvs/universallogin/include/site/python2.7:
    /usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'bugtrack_url'
    
      warnings.warn(msg)
    
    Building lxml version 3.4.4.
    
    Building without Cython.
    
    ERROR: /bin/sh: 1: xslt-config: not found
    
    
    
    ** make sure the development packages of libxml2 and libxslt are installed **
    
    
    
    Using build configuration of libxslt
    
    running install
    
    running build
    
    running build_py
    
    creating build
    
    creating build/lib.linux-i686-2.7
    
    creating build/lib.linux-i686-2.7/lxml
    
    copying src/lxml/pyclasslookup.py -> build/lib.linux-i686-2.7/lxml
    
    copying src/lxml/doctestcompare.py -> build/lib.linux-i686-2.7/lxml
    
    copying src/lxml/sax.py -> build/lib.linux-i686-2.7/lxml
    
    copying src/lxml/_elementpath.py -> build/lib.linux-i686-2.7/lxml
    
    copying src/lxml/__init__.py -> build/lib.linux-i686-2.7/lxml
    
    copying src/lxml/builder.py -> build/lib.linux-i686-2.7/lxml
    
    copying src/lxml/ElementInclude.py -> build/lib.linux-i686-2.7/lxml
    
    copying src/lxml/cssselect.py -> build/lib.linux-i686-2.7/lxml
    
    copying src/lxml/usedoctest.py -> build/lib.linux-i686-2.7/lxml
    
    creating build/lib.linux-i686-2.7/lxml/includes
    
    copying src/lxml/includes/__init__.py -> build/lib.linux-i686-2.7/lxml/includes
    
    creating build/lib.linux-i686-2.7/lxml/html
    
    copying src/lxml/html/soupparser.py -> build/lib.linux-i686-2.7/lxml/html
    
    copying src/lxml/html/html5parser.py -> build/lib.linux-i686-2.7/lxml/html
    
    copying src/lxml/html/_setmixin.py -> build/lib.linux-i686-2.7/lxml/html
    
    copying src/lxml/html/diff.py -> build/lib.linux-i686-2.7/lxml/html
    
    copying src/lxml/html/formfill.py -> build/lib.linux-i686-2.7/lxml/html
    
    copying src/lxml/html/_diffcommand.py -> build/lib.linux-i686-2.7/lxml/html
    
    copying src/lxml/html/ElementSoup.py -> build/lib.linux-i686-2.7/lxml/html
    
    copying src/lxml/html/__init__.py -> build/lib.linux-i686-2.7/lxml/html
    
    copying src/lxml/html/builder.py -> build/lib.linux-i686-2.7/lxml/html
    
    copying src/lxml/html/defs.py -> build/lib.linux-i686-2.7/lxml/html
    
    copying src/lxml/html/_html5builder.py -> build/lib.linux-i686-2.7/lxml/html
    
    copying src/lxml/html/usedoctest.py -> build/lib.linux-i686-2.7/lxml/html
    
    copying src/lxml/html/clean.py -> build/lib.linux-i686-2.7/lxml/html
    
    creating build/lib.linux-i686-2.7/lxml/isoschematron
    
    copying src/lxml/isoschematron/__init__.py -> build/lib.linux-i686-2.7/lxml/isoschematron
    
    copying src/lxml/lxml.etree.h -> build/lib.linux-i686-2.7/lxml
    
    copying src/lxml/lxml.etree_api.h -> build/lib.linux-i686-2.7/lxml
    
    copying src/lxml/includes/htmlparser.pxd -> build/lib.linux-i686-2.7/lxml/includes
    
    copying src/lxml/includes/xinclude.pxd -> build/lib.linux-i686-2.7/lxml/includes
    
    copying src/lxml/includes/c14n.pxd -> build/lib.linux-i686-2.7/lxml/includes
    
    copying src/lxml/includes/xpath.pxd -> build/lib.linux-i686-2.7/lxml/includes
    
    copying src/lxml/includes/etreepublic.pxd -> build/lib.linux-i686-2.7/lxml/includes
    
    copying src/lxml/includes/schematron.pxd -> build/lib.linux-i686-2.7/lxml/includes
    
    copying src/lxml/includes/xslt.pxd -> build/lib.linux-i686-2.7/lxml/includes
    
    copying src/lxml/includes/tree.pxd -> build/lib.linux-i686-2.7/lxml/includes
    
    copying src/lxml/includes/config.pxd -> build/lib.linux-i686-2.7/lxml/includes
    
    copying src/lxml/includes/xmlschema.pxd -> build/lib.linux-i686-2.7/lxml/includes
    
    copying src/lxml/includes/xmlerror.pxd -> build/lib.linux-i686-2.7/lxml/includes
    
    copying src/lxml/includes/xmlparser.pxd -> build/lib.linux-i686-2.7/lxml/includes
    
    copying src/lxml/includes/dtdvalid.pxd -> build/lib.linux-i686-2.7/lxml/includes
    
    copying src/lxml/includes/uri.pxd -> build/lib.linux-i686-2.7/lxml/includes
    
    copying src/lxml/includes/relaxng.pxd -> build/lib.linux-i686-2.7/lxml/includes
    
    copying src/lxml/includes/etree_defs.h -> build/lib.linux-i686-2.7/lxml/includes
    
    copying src/lxml/includes/lxml-version.h -> build/lib.linux-i686-2.7/lxml/includes
    
    creating build/lib.linux-i686-2.7/lxml/isoschematron/resources
    
    creating build/lib.linux-i686-2.7/lxml/isoschematron/resources/rng
    
    copying src/lxml/isoschematron/resources/rng/iso-schematron.rng -> build/lib.linux-i686-2.7/lxml/isoschematron/resources/rng
    
    creating build/lib.linux-i686-2.7/lxml/isoschematron/resources/xsl
    
    copying src/lxml/isoschematron/resources/xsl/RNG2Schtrn.xsl -> build/lib.linux-i686-2.7/lxml/isoschematron/resources/xsl
    
    copying src/lxml/isoschematron/resources/xsl/XSD2Schtrn.xsl -> build/lib.linux-i686-2.7/lxml/isoschematron/resources/xsl
    
    creating build/lib.linux-i686-2.7/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
    
    copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_dsdl_include.xsl -> build/lib.linux-i686-2.7/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
    
    copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_abstract_expand.xsl -> build/lib.linux-i686-2.7/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
    
    copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_message.xsl -> build/lib.linux-i686-2.7/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
    
    copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_skeleton_for_xslt1.xsl -> build/lib.linux-i686-2.7/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
    
    copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_svrl_for_xslt1.xsl -> build/lib.linux-i686-2.7/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
    
    copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/readme.txt -> build/lib.linux-i686-2.7/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
    
    running build_ext
    
    building 'lxml.etree' extension
    
    creating build/temp.linux-i686-2.7
    
    creating build/temp.linux-i686-2.7/src
    
    creating build/temp.linux-i686-2.7/src/lxml
    
    i686-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/tmp/pip-build-RLyvkw/lxml/src/lxml/includes -I/usr/include/python2.7 -c src/lxml/lxml.etree.c -o build/temp.linux-i686-2.7/src/lxml/lxml.etree.o -w
    
    In file included from src/lxml/lxml.etree.c:239:0:
    
    /tmp/pip-build-RLyvkw/lxml/src/lxml/includes/etree_defs.h:14:31: fatal error: libxml/xmlversion.h: No such file or directory
    
     #include "libxml/xmlversion.h"
    
                                   ^
    
    compilation terminated.
    
    error: command 'i686-linux-gnu-gcc' failed with exit status 1
    
    ----------------------------------------
    Command "/home/apurva/.virtualenvs/universallogin/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip-build-RLyvkw/lxml/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-9WRQzF-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/apurva/.virtualenvs/universallogin/include/site/python2.7" failed with error code 1 in /tmp/pip-build-RLyvkw/lxml

我已经试过了:sudo apt get install zlib1g dev 在“pip install”读取此答案之前:Not able to install lxml verison 3.3.5 in ubuntu

但没有帮助。 另外,尝试安装python dev、python3 dev、lib eventdev也没有帮助。

另外,尝试过这样做:STATIC_DEPS=true pip install lxml 正在阅读:http://lxml.de/installation.html

也没有帮助! 如果你能提出一些建议,我将不胜感激 提前谢谢。


Tags: pybuildsrclinuxlibhtmlisolxml
2条回答

输出状态** make sure the development packages of libxml2 and libxslt are installed **。你做到了吗?

sudo apt-get install libxml2-dev libxslt-dev

另外,使用pip安装而不是安装Ubuntu附带的python-lxml包有什么特别的原因吗?除非有其他原因,否则最好安装发行版的软件包。

如果不需要来自PyPI的特定版本,可以始终使用为Ubuntu打包的版本。

$ sudo apt-get install python-lxml

。。。然后在您的virtualenv中允许系统站点包。


更新:

为了澄清。。。 默认情况下,pip从PyPI安装python包。但是,许多python包也为Ubuntu打包并存储在Ubuntu档案中,您可以通过系统包管理器(apt-get)来安装它们,而不是使用pip。这很有帮助,因为Ubuntu包已经编译好了,并且将拉入它们需要的任何依赖项。

默认情况下,virtualenv创建一个独立的python环境,因此您无法访问系统包(使用apt get安装)。但是,您可以在virtualenv中允许系统站点包。

例如,让我们从它的系统包中安装lxml,创建一个名为“ENV”的virtualenv,允许访问系统包,然后导入lxml以验证其工作正常:

$ sudo apt-get install python-lxml
$ virtualenv --system-site-packages ENV
$ source ENV/bin/activate
(ENV)$ python -c "import xml"

相关问题 更多 >