【问题标题】:Problems installing lxml in Ubuntu在 Ubuntu 中安装 lxml 的问题
【发布时间】:2015-10-06 09:59:00
【问题描述】:

当我这样做时出现以下错误: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

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

【问题讨论】:

    标签: python python-2.7 pip lxml


    【解决方案1】:

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

    sudo apt-get install libxml2-dev libxslt-dev
    

    另外,您使用 pip 安装而不是安装 Ubuntu 附带的 python-lxml 软件包是否有特殊原因?除非您有理由不这样做,否则应该首选安装您的发行版包。

    【讨论】:

    • 感谢您的解决方案,它真的很有帮助。好吧,我用 pip 做的原因是因为我正在尝试这个美味的派教程,它是这样的。我完全是新手,所以只是按照教程进行操作。
    • 没有人像我这样傻,把 libxml2-dev 读成 libxm12-dev... /facepalm
    【解决方案2】:

    如果您不需要 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"
    

    【讨论】:

    • 我已经做到了。我们不需要再次执行 pip install lxml 吗? (我完全是新手。)另外,我怎样才能在我的 virtualenv 中允许系统站点包,它有什么用途?
    • @ApurvaJha 我刚刚用更多信息更新了我的答案以澄清事情。
    • 哦,谢谢你的回答,我当然不知道。
    猜你喜欢
    • 1970-01-01
    • 2016-12-13
    • 2019-04-15
    • 2011-09-24
    • 2015-10-28
    • 2016-05-10
    • 1970-01-01
    • 2015-09-09
    • 2020-05-27
    相关资源
    最近更新 更多