2011年6月30日——我因为这个问题而奖励@Pablo,因为他answer。
由于他的评论中讨论的原因,我仍然无法正确安装 lxml 2.3。我收集了一些可以做的工作,但我已经在这个问题上花费了大量的时间。不过,我已经编写了所需的代码并成功安装了 lxml 2.2.8。该代码可在该版本中运行。更好的是,巴勃罗是唯一正确诊断出错误的人。 libxslt 需要更新到支持的版本exsltMathXpathCtxtRegister
我感谢大家对这个问题的帮助。
2011年6月29日——更新这个问题以反映评论并更好地记录我的尝试
首先我应该说我已经尝试了所有可能的解决方案并安装了可以想象的场景。是的,这个主题也有类似的问题,但他们的具体问题和解决方案不是我自己的。我在这个问题上花了大约 10-15 个小时,但我却变得更加困惑。
我主要关心的问题
简而言之,从源代码安装 lxml-2.3 后or with 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
我尝试过的
-
我遇到的两个最常见的建议是确保libxml2 && libxml2-dev
and libxslt1 && libxslt1-dev
他们是。我已经通过 yum 安装了它们。
$ yum list libxslt libxslt-devel libxml2
libxml2-devel 加载的插件:
fastmirror 安装的软件包
libxml2.i386
2.6.26-2.1.2.8.el5_5.1安装libxml2.x86_64
2.6.26-2.1.2.8.el5_5.1安装libxml2-devel.i386
2.6.26-2.1.2.8.el5_5.1安装libxml2-devel.x86_64
2.6.26-2.1.2.8.el5_5.1安装libxslt.i386
1.1.17-2.el5_2.2安装libxslt.x86_64
1.1.17-2.el5_2.2安装libxslt-devel.i386
1.1.17-2.el5_2.2安装libxslt-devel.x86_64
1.1.17-2.el5_2.2已安装
-
重新安装并确认zlib && zlib-devel
已安装。
$ yum list zlib zlib-devel 已加载
插件:fastestmirror 已安装
软件包 zlib.i386
1.2.3-3安装zlib.x86_64
1.2.3-3安装zlib-devel.i386
1.2.3-3安装zlib-devel.x86_64
1.2.3-3安装完毕
-
确认的python-devel
已安装。我认为。
A。根据我读过的几件事,检查 python-devel 是否安装的方法是import distutils
。重新搜索这个问题会带来this快起来。
b. @Keith 建议我尝试“安装”它,使用this但是,我遇到了一个错误
> error: cannot create %sourcedir /usr/src/redhat/SOURCES
所以,我创建了该目录,并且它已经安装了。但没有成功。
然而我可以,import xml.etree.cElementTree as etree
and/or 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
:未定义`gzopen64'
./reference.libs/libxml2.a(xmlIO.o):
在功能上
``xmlGzfileOpen_real':gzopen64'
/./tmp./libs/easy_installlibxml2.a-(xmlIO.oY2MKTg):/lxml-
在2.3功能/构建中
/tmp/libxml2xmlGzfileOpen_real':
-/2.7.8tmp//xmlIO.ceasy_install:1175-Y2MKTg/:lxml-
2.3/build/undefinedtmp /referencelibxml2-2.7.8 /toxmlIO.c
:
1175:gzopen64undefined'参考
到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
功能中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:
未定义的引用
库/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:未定义未定义参考
参考``gzopen64'
gzopen64'collect2:ld返回1退出
地位
Collect2: ld 返回 1 退出状态
./.libs/libxml2.a(xmlIO.o): 在
功能xmlGzfileOpenW':
/tmp/easy_install-Y2MKTg/lxml-2.3/build/tmp/libxml2-2.7.8/xmlIO.c:1247:
undefined reference to
gzopen64'
./.libs/libxml2.a(xmlIO.o): 在
功能xmlGzfileOpen_real':
/tmp/easy_install-Y2MKTg/lxml-2.3/build/tmp/libxml2-2.7.8/xmlIO.c:1175:
undefined reference to
gzopen64'
Collect2: ld 返回 1 退出状态
制作2: * [测试模式] 错误 1
制作2: [xmlcatalog] 错误 1
制作2:
你的 libxslt 没有exsltMathXpathCtxtRegister
删除它,然后手动安装更新的版本(1.1.26 应该可以正常工作)。
旧版本的 lxml 也可以工作,尝试使用easy_install lxml==2.2.8
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)