mat*_*hew 6 python linux lxml makefile centos
2011年6月30日 - 由于他的回答,我正在为这个问题授予@Pablo .由于他的评论中讨论的原因,我仍然无法正确安装lxml 2.3.我收集了一些我可以做的工作,但我已经在这个问题上度过了一段荒谬的时间.但是,我已经编写了我需要的代码并成功安装了lxml 2.2.8.代码与此版本一起使用.更好的是,Pablo是唯一一个正确诊断错误的人.这是libxslt需要更新到支持的版本exsltMathXpathCtxtRegister我感谢每个人对这个问题的帮助.
2011年6月29日 - 更新此问题以反映意见并更好地记录我的尝试
我首先应该说我已经尝试了所有可能的解决方案并安装了可以想象的场景.是的,这个主题有类似的问题,但他们的具体问题和解决方案不是我自己的.我花了大约10-15个小时,我只是继续变得更加困惑.
我的主要关注点
总之,从源安装LXML-2.3后或与easy_install-2.7 lxml用于在centOs5.6 python2.7,交替安装python的,我不能正确地导入该模块.它将安装没有任何明显的错误,但它在尝试导入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
Run Code Online (Sandbox Code Playgroud)
我试过了什么
我所遇到的最常见的两个建议是,以确保libxml2 && libxml2-dev与libxslt1 && libxslt1-dev他们.我已经通过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
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
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
Run Code Online (Sandbox Code Playgroud)
所以,我创建了dir,它已经安装完毕.但没有成功.
但是,我可以import xml.etree.cElementTree as etree和/或import xml.etree.ElementTree as etree,但我确实需要一些特定的功能lxml.etree
奇怪的是,如果我尝试在假设未安装依赖项的情况下安装lxml并尝试类似以下内容
sudo STATIC_DEPS=true easy_install-2.7 lxml 2>&1 | tee -a ~/.lxml
输出错误如下,它失败了.我应该简洁地指出,对于不熟悉的,这似乎解决了许多人的问题,因为它会出去检索任何依赖项并安装它们以安装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 togzopen64' 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 functionIn functionxmlGzfileOpenW'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 to2.7.8gzopen64/xmlIO.c:1247: undefined' .reference/ .to libs/gzopen64libxml2.a' (./.xmlIO.olibs/libxml2.a(xmlIO.o)): : In Infunction functionxmlGzfileOpen_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 statuscollect2: 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 functionxmlGzfileOpen_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.
您的 libxslt 没有exsltMathXpathCtxtRegister删除它,请手动安装较新的版本(1.1.26 应该可以正常工作)。
旧版本的 lxml 也可以工作,尝试使用easy_install lxml==2.2.8