(still) cannot properly install lxml 2.3 for pytho

2019-02-10 00:06发布

问题:

  • 30 jun 2011 -- I am awarding @Pablo for this question, because of his answer. I am still unable to properly install lxml 2.3 for reasons discussed in his comments. I gather for a little bit of work I could, but I have already spent a ridiculous amount of time on this problem. I have, however, written the code I needed and successfully installed lxml 2.2.8. The code functions with this version. Better yet, Pablo was the only one to properly diagnose the error. Which was libxslt needed to be updated to a version with support for exsltMathXpathCtxtRegister I appreciate everyones help on this question.

  • 29 jun 2011 -- updating this question to reflect comments and to greater document my attempts


I should begin by saying I have tried every possible solution and install scenario imaginable. Yes, there are similar questions with this topic but their specific problem and solution are not my own. I have spent about 10-15 hours on this and I only continue to become more perplexed.

My Main Concern

In short, after installing lxml-2.3 from source or with easy_install-2.7 lxml for python2.7 on centOs5.6, an alternate install of python, I cannot import the module properly. It will install without any obvious error, but It returns the following error when trying to import etree:

Python 2.7.2 (default, Jun 16 2011, 11:53:48) 
[GCC 4.1.2 20080704 (Red Hat 4.1.2-50)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import lxml
>>> from lxml import etree
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: /usr/local/lib/python2.7/site-packages/lxml-2.3-py2.7-linux-x86_64.egg/lxml/etree.so: undefined symbol: exsltMathXpathCtxtRegister

What I have Tried

  1. The two most common suggestions I have encountered are to make sure libxml2 && libxml2-dev and libxslt1 && libxslt1-devThey are. I have installed them through yum.

    $ yum list libxslt libxslt-devel libxml2 libxml2-devel Loaded plugins: fastestmirror Installed Packages libxml2.i386
    2.6.26-2.1.2.8.el5_5.1 installed libxml2.x86_64
    2.6.26-2.1.2.8.el5_5.1 installed libxml2-devel.i386
    2.6.26-2.1.2.8.el5_5.1 installed libxml2-devel.x86_64
    2.6.26-2.1.2.8.el5_5.1 installed libxslt.i386
    1.1.17-2.el5_2.2 installed libxslt.x86_64
    1.1.17-2.el5_2.2 installed libxslt-devel.i386
    1.1.17-2.el5_2.2 installed libxslt-devel.x86_64
    1.1.17-2.el5_2.2 installed

  2. Re-installed and Confirmed that zlib && zlib-devel are installed.

    $ yum list zlib zlib-devel Loaded plugins: fastestmirror Installed Packages zlib.i386
    1.2.3-3 installed zlib.x86_64
    1.2.3-3 installed zlib-devel.i386
    1.2.3-3 installed zlib-devel.x86_64
    1.2.3-3 installed

  3. Confirmed python-devel is installed. I think.

    a. According to several things I have read a way to check if python-devel is installed is to import distutils. regoogling this question brings this up quickly.

    b. @Keith suggested I tried to 'install' it anyhow, using this, however, I encountered an error

        > error: cannot create %sourcedir /usr/src/redhat/SOURCES
    

    so, I created the dir, and it has since installed. But with no success.

  4. I can, however, import xml.etree.cElementTree as etree and/or import xml.etree.ElementTree as etree, but I do require some specific functionality from lxml.etree

  5. Oddly, If I try to install lxml under the assumption the dependencies not installed and try something like the following

    sudo STATIC_DEPS=true easy_install-2.7 lxml 2>&1 | tee -a ~/.lxml

    it fails with the outputting the error below. I should tersely note, for the unfamiliar, this seems to solve many people's issues as it will go out and retrieve any dependencies and install them for install lxml.

    tail -100 ~/.lxml

    gcc -DHAVE_CONFIG_H -I. -I./include -I./include -D_REENTRANT -I/tmp/easy_install-Y2MKTg/lxml-2.3/build/tmp/libxml2/include -g -O2 -pedantic -W -Wformat -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls -c runsuite.c gcc -DHAVE_CONFIG_H -I. -I./include -I./include -D_REENTRANT -I/tmp/easy_install-Y2MKTg/lxml-2.3/build/tmp/libxml2/include -g -O2 -pedantic -W -Wformat -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls -c testchar.c testapi.c: In function ‘test_xmlBufferSetAllocationScheme’: testapi.c:18773: warning: comparison of distinct pointer types lacks a cast gcc -DHAVE_CONFIG_H -I. -I./include -I./include -D_REENTRANT -I/tmp/easy_install-Y2MKTg/lxml-2.3/build/tmp/libxml2/include -g -O2 -pedantic -W -Wformat -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls -c testdict.c gcc -DHAVE_CONFIG_H -I. -I./include -I./include -D_REENTRANT -I/tmp/easy_install-Y2MKTg/lxml-2.3/build/tmp/libxml2/include -g -O2 -pedantic -W -Wformat -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls -c runxmlconf.c gcc -DHAVE_CONFIG_H -I. -I./include -I./include -D_REENTRANT -I/tmp/easy_install-Y2MKTg/lxml-2.3/build/tmp/libxml2/include -g -O2 -pedantic -W -Wformat -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls -c testrecurse.c sed -e 's?\@XML_LIBDIR\@?-L/tmp/easy_install-Y2MKTg/lxml-2.3/build/tmp/libxml2/lib?g' \ -e 's?\@XML_INCLUDEDIR\@?-I/tmp/easy_install-Y2MKTg/lxml-2.3/build/tmp/libxml2/include/libxml2 -I/tmp/easy_install-Y2MKTg/lxml-2.3/build/tmp/libxml2/include?g' \ -e 's?\@VERSION\@?2.7.8?g' \ -e 's?\@XML_LIBS\@?-lxml2 -lz -L/tmp/easy_install-Y2MKTg/lxml-2.3/build/tmp/libxml2/lib -liconv -lm ?g' \ < ./xml2Conf.sh.in > xml2Conf.tmp \ && mv xml2Conf.tmp xml2Conf.sh /bin/sh ./libtool --tag=CC --mode=link gcc -g -O2 -pedantic -W -Wformat -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls -module -no-undefined -avoid-version -rpath /tmp/easy_install-Y2MKTg/lxml-2.3/build/tmp/libxml2/lib -o testdso.la testdso.lo testapi.c: At top level: testapi.c:17989: warning: ‘gen_xmlSchematronPtr’ defined but not used testapi.c:17992: warning: ‘des_xmlSchematronPtr’ defined but not used testapi.c:18009: warning: ‘gen_xmlSchematronParserCtxtPtr’ defined but not used testapi.c:18012: warning: ‘des_xmlSchematronParserCtxtPtr’ defined but not used testapi.c:34157: warning: ‘gen_xmlSAXHandlerPtr_ptr’ defined but not used testapi.c:34160: warning: ‘des_xmlSAXHandlerPtr_ptr’ defined but not used libtool: link: ar cru .libs/testdso.a testdso.o libtool: link: ranlib .libs/testdso.a libtool: link: ( cd ".libs" && rm -f "testdso.la" && ln -s "../testdso.la" "testdso.la" ) /bin/sh ./libtool --tag=CC --mode=link gcc -g -O2 -pedantic -W -Wformat -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls -version-info 9:8:7 -ldl -o libxml2.la -rpath /tmp/easy_install-Y2MKTg/lxml-2.3/build/tmp/libxml2/lib SAX.lo entities.lo encoding.lo error.lo parserInternals.lo parser.lo tree.lo hash.lo list.lo xmlIO.lo xmlmemory.lo uri.lo valid.lo xlink.lo HTMLparser.lo HTMLtree.lo debugXML.lo xpath.lo xpointer.lo xinclude.lo nanohttp.lo nanoftp.lo DOCBparser.lo catalog.lo globals.lo threads.lo c14n.lo xmlstring.lo xmlregexp.lo xmlschemas.lo xmlschemastypes.lo xmlunicode.lo xmlreader.lo relaxng.lo dict.lo SAX2.lo xmlwriter.lo legacy.lo chvalid.lo pattern.lo xmlsave.lo xmlmodule.lo schematron.lo -lz -L/tmp/easy_install-Y2MKTg/lxml-2.3/build/tmp/libxml2/lib -liconv -lm libtool: link: ar cru .libs/libxml2.a SAX.o entities.o encoding.o error.o parserInternals.o parser.o tree.o hash.o list.o xmlIO.o xmlmemory.o uri.o valid.o xlink.o HTMLparser.o HTMLtree.o debugXML.o xpath.o xpointer.o xinclude.o nanohttp.o nanoftp.o DOCBparser.o catalog.o globals.o threads.o c14n.o xmlstring.o xmlregexp.o xmlschemas.o xmlschemastypes.o xmlunicode.o xmlreader.o relaxng.o dict.o SAX2.o xmlwriter.o legacy.o chvalid.o pattern.o xmlsave.o xmlmodule.o schematron.o libtool: link: ranlib .libs/libxml2.a libtool: link: ( cd ".libs" && rm -f "libxml2.la" && ln -s "../libxml2.la" "libxml2.la" ) /bin/sh ./libtool --tag=CC --mode=link gcc -g -O2 -pedantic -W -Wformat -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls -o xmllint xmllint.o ./libxml2.la -lz -L/tmp/easy_install-Y2MKTg/lxml-2.3/build/tmp/libxml2/lib -liconv -lm /bin/sh ./libtool --tag=CC --mode=link gcc -g -O2 -pedantic -W -Wformat -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls -o xmlcatalog xmlcatalog.o ./libxml2.la -lz -L/tmp/easy_install-Y2MKTg/lxml-2.3/build/tmp/libxml2/lib -liconv -lm /bin/sh ./libtool --tag=CC --mode=link gcc -g -O2 -pedantic -W -Wformat -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls -o testSchemas testSchemas.o ./libxml2.la -lz -L/tmp/easy_install-Y2MKTg/lxml-2.3/build/tmp/libxml2/lib -liconv -lm /bin/sh ./libtool --tag=CC --mode=link gcc -g -O2 -pedantic -W -Wformat -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls -o testRelax testRelax.o ./libxml2.la -lz -L/tmp/easy_install-Y2MKTg/lxml-2.3/build/tmp/libxml2/lib -liconv -lm /bin/sh ./libtool --tag=CC --mode=link gcc -g -O2 -pedantic -W -Wformat -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls -o testSAX testSAX.o ./libxml2.la -lz -L/tmp/easy_install-Y2MKTg/lxml-2.3/build/tmp/libxml2/lib -liconv -lm libtool: link: gcc -g -O2 -pedantic -W -Wformat -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls -o testSAX testSAX.o ./.libs/libxml2.a -L/tmp/easy_install-Y2MKTg/lxml-2.3/build/tmp/libxml2/lib -ldl -lz /tmp/easy_install-Y2MKTg/lxml-2.3/build/tmp/libxml2/lib/libiconv.a -lm libtool: link: gcc -g -O2 -pedantic -W -Wformat -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls -o testRelax testRelax.o ./.libs/libxml2.a -L/tmp/easy_install-Y2MKTg/lxml-2.3/build/tmp/libxml2/lib -ldl -lz /tmp/easy_install-Y2MKTg/lxml-2.3/build/tmp/libxml2/lib/libiconv.a -lm libtool: link: gcc -g -O2 -pedantic -W -Wformat -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls -o xmlcatalog xmlcatalog.o ./.libs/libxml2.a -L/tmp/easy_install-Y2MKTg/lxml-2.3/build/tmp/libxml2/lib -ldl -lz /tmp/easy_install-Y2MKTg/lxml-2.3/build/tmp/libxml2/lib/libiconv.a -lm libtool: link: gcc -g -O2 -pedantic -W -Wformat -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls -o testSchemas testSchemas.o ./.libs/libxml2.a -L/tmp/easy_install-Y2MKTg/lxml-2.3/build/tmp/libxml2/lib -ldl -lz /tmp/easy_install-Y2MKTg/lxml-2.3/build/tmp/libxml2/lib/libiconv.a -lm libtool: link: gcc -g -O2 -pedantic -W -Wformat -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Wredundant-decls -o xmllint xmllint.o ./.libs/libxml2.a -L/tmp/easy_install-Y2MKTg/lxml-2.3/build/tmp/libxml2/lib -ldl -lz /tmp/easy_install-Y2MKTg/lxml-2.3/build/tmp/libxml2/lib/libiconv.a -lm ./..libs/libxml2.a(/.xmlIO.o):libs In function xmlGzfileOpenW': //tmp/libxml2.aeasy_install-(Y2MKTgxmlIO.o/):lxml -2.3/In build/function tmp/libxml2xmlGzfileOpenW-': 2.7.8//xmlIO.c:tmp1247/:easy_install -Y2MKTg/lxml-2.3/build/tmp/undefined libxml2-reference2.7.8/xmlIO.c:1247 :to undefined`gzopen64' ./reference.libs/libxml2.a( xmlIO.o): In functionto ``xmlGzfileOpen_real':gzopen64'

    /./tmp./libs/easy_installlibxml2.a-(xmlIO.oY2MKTg):/lxml- In 2.3function/build /tmp/libxml2xmlGzfileOpen_real': -/2.7.8tmp//xmlIO.ceasy_install:1175-Y2MKTg/:lxml- 2.3/build/undefinedtmp /referencelibxml2-2.7.8 /toxmlIO.c :1175: gzopen64undefined' reference to gzopen64' collect2: collect2: ld returned 1 exit status ld returned 1 exit status make[2]: *** [testRelax] Error 1 make[2]: *** Waiting for unfinished jobs.... make[2]: *** [testSAX] Error 1 .././.libs/libslibxml2.a/(libxml2.axmlIO.o(xmlIO.o)):: In function In function xmlGzfileOpenW'xmlGzfileOpenW':: / tmp/easy_install-Y2MKTg//tmp/lxmleasy_install--Y2MKTg/lxml-2.32.3//build/tmp/buildlibxml2-2.7.8//xmlIO.ctmp:/libxml2-1247: undefined reference to 2.7.8gzopen64/xmlIO.c:1247: undefined' .reference/ .to libs/gzopen64libxml2.a' (./.xmlIO.olibs/libxml2.a(xmlIO.o)): : In Infunction function xmlGzfileOpen_real '`: xmlGzfileOpen_real/': tmp//tmp/easy_install-Y2MKTgeasy_install-/Y2MKTg/lxml-lxml2.3-2.3//build/tmp/build/libxml2tmp/libxml2--2.7.82.7.8/xmlIO.c:/1175:xmlIO.c :1175: undefinedundefined reference reference toto ``gzopen64' gzopen64'collect2: ld returned 1 exit status

    collect2: ld returned 1 exit status ./.libs/libxml2.a(xmlIO.o): In function xmlGzfileOpenW': /tmp/easy_install-Y2MKTg/lxml-2.3/build/tmp/libxml2-2.7.8/xmlIO.c:1247: undefined reference togzopen64' ./.libs/libxml2.a(xmlIO.o): In function xmlGzfileOpen_real': /tmp/easy_install-Y2MKTg/lxml-2.3/build/tmp/libxml2-2.7.8/xmlIO.c:1175: undefined reference togzopen64' collect2: ld returned 1 exit status make2: * [testSchemas] Error 1 make2: [xmlcatalog] Error 1 make2: [xmllint] Error 1 make2: Leaving directory /tmp/easy_install-Y2MKTg/lxml-2.3/build/tmp/libxml2-2.7.8' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory /tmp/easy_install-Y2MKTg/lxml-2.3/build/tmp/libxml2-2.7.8' make: * [all] Error 2 Traceback (most recent call last): File "/usr/local/bin/easy_install-2.7", line 8, in load_entry_point('setuptools==0.6c11', 'console_scripts', 'easy_install-2.7')() File "build/bdist.linux-i686/egg/setuptools/command/easy_install.py", line 1712, in main File "build/bdist.linux-i686/egg/setuptools/command/easy_install.py", line 1700, in with_ei_usage File "build/bdist.linux-i686/egg/setuptools/command/easy_install.py", line 1716, in File "/usr/local/lib/python2.7/distutils/core.py", line 152, in setup dist.run_commands() File "/usr/local/lib/python2.7/distutils/dist.py", line 953, in run_commands self.run_command(cmd) File "/usr/local/lib/python2.7/distutils/dist.py", line 972, in run_command cmd_obj.run() File "build/bdist.linux-i686/egg/setuptools/command/easy_install.py", line 211, in run File "build/bdist.linux-i686/egg/setuptools/command/easy_install.py", line 446, in easy_install File "build/bdist.linux-i686/egg/setuptools/command/easy_install.py", line 476, in install_item File "build/bdist.linux-i686/egg/setuptools/command/easy_install.py", line 655, in install_eggs File "build/bdist.linux-i686/egg/setuptools/command/easy_install.py", line 930, in build_and_install File "build/bdist.linux-i686/egg/setuptools/command/easy_install.py", line 919, in run_setup File "build/bdist.linux-i686/egg/setuptools/sandbox.py", line 62, in run_setup File "build/bdist.linux-i686/egg/setuptools/sandbox.py", line 105, in run File "build/bdist.linux-i686/egg/setuptools/sandbox.py", line 64, in File "setup.py", line 130, in
    File "/tmp/easy_install-Y2MKTg/lxml-2.3/setupinfo.py", line 56, in ext_modules File "/tmp/easy_install-Y2MKTg/lxml-2.3/buildlibxml.py", line 311, in build_libxml2xslt File "/tmp/easy_install-Y2MKTg/lxml-2.3/buildlibxml.py", line 253, in cmmi File "/tmp/easy_install-Y2MKTg/lxml-2.3/buildlibxml.py", line 236, in call_subprocess Exception: Command "make -j6" returned code 2

there was considerably more, and if you are interested you can check it out here

I have tried several other methods of installation. including @agilevic's which returned an error virtually identical to the one above. Most others install effortlessly, but all fail on from lxml import etree

Why not use a yum? Well, I was able to install lxml effortlessly through yum install python-lxml, but that was centOs' default installation of python2.4. At this point it is probably easier to retool my existing project to work with 2.4. In the long run, however, I would truly like to resolve this issue. For myself, and anyone else who may encounter a similar problem in the future.

回答1:

Your libxslt do not have exsltMathXpathCtxtRegister remove it, and manually install a newer version (1.1.26 should work fine).

An older version of lxml may work too, try with easy_install lxml==2.2.8



回答2:

A word to future googlers - I arrived here with the same symptom, but a sufficiently recent packaged version of libxslt installed (1.1.26). Took about 10 minutes before I realised I also had an ancient version in my path, (installed with the casapy astronomy package).

Moral of the story: run a locate libxslt to find old versions, and check against your $LD_LIBRARY_PATH! (Of course, this applies to any library conflict in general).



回答3:

Reading your output it looks like the linker output an error: undefined reference to gzopen64

That error bubbled up into lxml-2.3/buildlibxml.py", line 236, in call_subprocess, which bubbled up again into make -j6

I found a thread here: http://www.imagemagick.org/discourse-server/viewtopic.php?f=1&t=15524 that had the same compiler error. With a suggestion

You may the i586 version of the zlib delegate library installed. You may need to install the 64-bit version of zlib and zlib-devel.

And the OP of that thread later commented:

What i did now is downloading the source from zlib and compiled it into local environment. /usr/local/includes and such. recompiled all plugins and compiled ImageMagick again.

Now it works. Many thanks :D

So, I'd suggest re-installing zlib and zlib-devel, and then try to install lxml again.



回答4:

You best best may be compiling LibXML2 and LibXSLT from sources. Assuming the prefix for your installation should be the same as your custom Python, which appears to be /usr/local, here's how (there may be newer version of the software so, check that first):

wget http://xmlsoft.org/sources/libxml2-sources-2.7.7.tar.gz
gzip -dc libxml2-sources-2.7.7.tar.gz | tar xvf -
cd libxml2-2.7.7
./configure --prefix=/usr/local
make
make install
wget http://xmlsoft.org/sources/libxslt-1.1.26.tar.gz
gzip -dc libxslt-1.1.26.tar.gz | tar xvf -
cd libxslt-1.1.26
./configure --prefix=/usr/local
make
make install

If the above does not compile, there may be other dependencies that you should try to satisfy from yum packages, typically these would be certain libraries and/or *-devel packages with missing header files.

Once that's done either

easy_install lxml

or

pip install lxml


回答5:

Make sure you have libxslt-dev and libxml2-dev installed on your machine (you can do this with yum I guess); lxml won't build without them.