2016-11-23 85 views
4

我收到通過PIP安裝LXML這些錯誤:未定義的符號:xmlMemDisplayLast誤差LXML

running build_ext 
    building 'lxml.etree' extension 
    creating build/temp.linux-i686-3.5 
    creating build/temp.linux-i686-3.5/src 
    creating build/temp.linux-i686-3.5/src/lxml 
    gcc -pthread -fno-strict-aliasing -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/usr/include/libxml2 -Isrc/lxml/includes -I/usr/local/include/python3.5m -c src/lxml/lxml.etree.c -o build/temp.linux-i686-3.5/src/lxml/lxml.etree.o -w 
    In file included from src/lxml/lxml.etree.c:321: 
    src/lxml/includes/etree_defs.h:19:4: error: #error minimum required version of libxml2 is 2.7.0 
    src/lxml/includes/etree_defs.h:28:4: error: #error minimum required version of libxslt is 1.1.23 
    src/lxml/lxml.etree.c: In function ‘__pyx_pf_4lxml_5etree_9XMLParser___init__’: 
    src/lxml/lxml.etree.c:113201: error: ‘XML_PARSE_HUGE’ undeclared (first use in this function) 
    src/lxml/lxml.etree.c:113201: error: (Each undeclared identifier is reported only once 
    src/lxml/lxml.etree.c:113201: error: for each function it appears in.) 
    src/lxml/lxml.etree.c: In function ‘__pyx_pf_4lxml_5etree_10Schematron_6__call__’: 
    src/lxml/lxml.etree.c:194047: error: ‘XML_SCHEMATRON_OUT_ERROR’ undeclared (first use in this function) 
    Compile failed: command 'gcc' failed with exit status 1 
    creating tmp 
    cc -I/usr/include/libxml2 -I/usr/include/libxml2 -c /tmp/xmlXPathInitomumkupc.c -o tmp/xmlXPathInitomumkupc.o 
    cc tmp/xmlXPathInitomumkupc.o -L/usr/lib -lxml2 -o a.out 
    error: command 'gcc' failed with exit status 1 

    ---------------------------------------- 
Command "/usr/local/bin/python3.5 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-2c9_3zz2/lxml/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-du99fdnt-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-2c9_3zz2/lxml/ 

假設有些包不符合要求,我試圖通過yum更新它們:

已安裝的軟件包libxml2-2.6.26-2.1.25.el5_11.i386和最新版本

包裝的libxslt-1.1.17-4.el5_8.3.i386已經安裝了最新版本

我在CentOS上用Python 3.5.1。有沒有簡單的方法來安裝它?

也許值得尋找另一個百勝回購?

如果我嘗試通過這兩個軟件包的https://serverfault.com/questions/266927/install-libxml2-2-7-x-on-centos-5-x#305682手動安裝(libxslt 1.1.23和libxml 2-2.7.2)以使它們保持最新,那麼在嘗試在Python 3.5中使用lxml時會出現此錯誤:

>>> from lxml import html 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/local/lib/python3.5/site-packages/lxml/html/__init__.py", line 54, in <module> 
    from .. import etree 
ImportError: /usr/local/lib/python3.5/site-packages/lxml/etree.cpython-35m-i386-linux-gnu.so: undefined symbol: xmlMemDisplayLast 
+2

怎麼樣'libxslt'?這是你應該安裝的其他庫。 – schwobaseggl

+1

@schwobaseggl是的,已經安裝了'Package libxslt-1.1.17-4.el5_8.3.i386已安裝並且最新版本' – Zeno

+1

鑑於消息「錯誤最低要求版本的libxml2是2.7.0'且錯誤最低要求版本的libxslt是1.1.23',你是說你的問題是你不知道如何獲得滿足安裝在CENTOS上的這些要求的軟件包?這有助於:http://serverfault.com/questions/266927/install-libxml2-2-7-x-on-centos-5-x#305682? – snakecharmerb

回答

0
src/lxml/includes/etree_defs.h:19:4: error: #error minimum required version of libxml2 is 2.7.0 
src/lxml/includes/etree_defs.h:28:4: error: #error minimum required version of libxslt is 1.1.23 

的libxml2-devel的&的libxslt-devel的的版本不滿足要求。

嘗試yum install libxml2-devel libxslt-devel

+0

*假設有些軟件包不符合要求,我嘗試通過yum *更新它們,然後是太舊的軟件包版本。他們需要幫助尋找新的軟件包。 –

+0

這給了我「已安裝和最新版本」 – Zeno