(все еще) не может правильно установить lxml 2.3 для python, но работает по крайней мере 2.2.8 - PullRequest
6 голосов
/ 21 июня 2011
  • 30 июня 2011 - Я награждаю @Pablo за этот вопрос из-за его ответа . Я все еще не могу правильно установить lxml 2.3 по причинам, которые обсуждались в его комментариях. Я собираюсь немного поработать, но могу потратить на эту проблему смехотворное количество времени. Однако я написал нужный код и успешно установил lxml 2.2.8. Код работает с этой версией. Еще лучше, что Пабло был единственным, кто правильно диагностировал ошибку. То, что было libxslt, нужно было обновить до версии с поддержкой exsltMathXpathCtxtRegister Я ценю всякую помощь по этому вопросу.

  • 29 июня 2011 г. - обновление этого вопроса для отражения комментариев и более подробного документа моих попыток


Я должен начать с того, что опробовал каждое возможное решение и установить сценарий, который только можно себе представить. Да, в этой теме есть похожие вопросы, но их конкретные проблемы и решения не являются моими. Я потратил около 10-15 часов на это, и я продолжаю испытывать растерянность.

Моя главная проблема

Короче говоря, после установки lxml-2.3 из источника или с easy_install-2.7 lxml для python2.7 для centOs5.6, альтернативной установки 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

Что я уже пробовал

  1. Два наиболее распространенных предложения, с которыми я столкнулся, это убедиться, что libxml2 && libxml2-dev и libxslt1 && libxslt1-dev Они есть. Я установил их через ням.

    $ yum list libxslt libxslt-devel libxml2 libxml2-devel Загруженные плагины: fastestmirror Установленные пакеты 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 установлено

  2. Переустановлен и подтвержден, что zlib && zlib-devel установлены.

    $ yum list zlib zlib-devel Loaded плагины: fasttestmirror установлен Пакеты 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 установлен

  3. Подтверждено python-devel установлено. Я думаю.

    а. Согласно нескольким вещам, я прочитал способ проверить, установлен ли python-devel на import distutils. повторный поиск этого вопроса быстро поднимает этого .

    б. @Keith предложил мне все равно попытаться «установить» его, используя this , однако я обнаружил ошибку

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

    Итак, я создал каталог, и с тех пор он установил. Но безуспешно.

  4. Я могу, однако, import xml.etree.cElementTree as etree и / или import xml.etree.ElementTree as etree, но мне требуются некоторые специальные функции из lxml.etree

  5. Странно, если я попытаюсь установить 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 -Write-strings -Waggregate -return -Wstrict-prototypes -Wmissing-прототипы -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 -Write-strings -Waggregate -return -Wstrict-prototypes -Wmissing-прототипы -Wnested-externs -Winline -Wredundant-decls -c testchar.c testapi.c: в функции «Test_xmlBufferSetAllocationScheme»: testapi.c: 18773: предупреждение: сравнение в отдельных типах указателей отсутствует приведение 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 -Write-strings -Waggregate -return -Wstrict-prototypes -Wmissing-прототипы -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 -Write-strings -Waggregate -return -Wstrict-prototypes -Wmissing-прототипы -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 -Write-strings -Waggregate -вернуть -Строить-прототипы -Закрепить-прототипы -Внешние-экстерьеры -Винлайн -Вредуант-decls -c testrecurse.c sed -e 'S \ @ XML_LIBDIR \ @ -?? L / TMP / easy_install-Y2MKTg / LXML-2,3 / сборки / TMP / libxml2 / Lib г' \ -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 / включить? г» \ -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 -Write-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: на верхнем уровне: testapi.c: 17989: предупреждение: «gen_xmlSchematronPtr» определено, но не использовано testapi.c: 17992: предупреждение: «des_xmlSchematronPtr» определено, но не использовано testapi.c: 18009: предупреждение: «Gen_xmlSchematronParserCtxtPtr» определено, но не использовано testapi.c: 18012: предупреждение: «Des_xmlSchematronParserCtxtPtr» определено, но не использовано testapi.c: 34157: предупреждение: "gen_xmlSAXHandlerPtr_ptr" определено, но не использовано testapi.c: 34160: предупреждение: "des_xmlSAXHandlerPtr_ptr" определяется, но не используется libtool: link: ar cru .libs / testdso.a testdso.o libtool: ссылка: ranlib .libs / testdso.a libtool: ссылка: (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 entity.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: ссылка: ar cru .libs / libxml2.a SAX.o entity.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: ссылка: ranlib .libs / libxml2.a libtool: ссылка: (cd ".libs" && rm -f "libxml2.la" && ln -s "../libxml2.la" "libxml2.la") / bin / sh ./libtool --tag = CC --mode = ссылка gcc -g -O2 -pedantic -W -Wformat -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Write-strings -Waggregate -return -Wstrict-prototypes -Wmissing-прототипы -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 - режим = ссылка 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-prototy-прототипы -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 = ссылка 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-protopes -Wmissing-прототипы -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 = ссылка 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-protopes -Wmissing-прототипы -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 = ссылка 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-protopes -Wmissing-прототипы -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: ссылка: gcc -g -O2 -pedantic -W -Wformat -Wunused -Nimplicit -Wreturn-type -Wswitch - Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Write-strings -Waggregate-return -Wstrict-прототипы -Wmissing-прототипы -Wnested-externs -Winline -Wls 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: ссылка: gcc -g -O2 -педантичный -W -Wformat -Wunused -Wimplicit -Wreturn-тип -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: ссылка: gcc -g -O2 -педантичный -W -Wformat -Wunused -Wimplicit -Wreturn-тип -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast- выровняйте ./.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: ссылка: gcc -g -O2 -педантичный -W -Wformat -Wunused -Wimplicit -Wreturn-тип -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: ссылка: gcc -g -O2 -педантичный -W -Wformat -Wunused -Wimplicit -Wreturn-тип -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 В функции 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): В функции `` 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: неопределенная ссылка на 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 // построить / TMP / сборки / 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 togzopen64 'collect2: ld вернул 1 состояние завершения make 2 : * [testSchemas] Ошибка 1 make 2 : [xmlcatalog] Ошибка 1 make 2 : [xmllint] Ошибка 1 make 2 : выход из каталога /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] Ошибка 2 Traceback (последний вызов был последним): файл "/usr/local/bin/easy_install-2.7", строка 8, в load_entry_point (' setuptools == 0.6c11 ','console_scripts ',' easy_install-2.7 ') () Файл "build / bdist.linux-i686 / egg / setuptools / command / easy_install.py", строка 1712, в основном файле "build / bdist.linux-i686 / egg / setuptools/command/easy_install.py ", строка 1700, в файле with_ei_usage" build / bdist.linux-i686 / egg / setuptools / command / easy_install.py ", строка 1716, в файле" /usr/local/lib/python2.7/distutils/core.py ", строка 152, в настройке dist.run_commands () FФайл "/usr/local/lib/python2.7/distutils/dist.py", строка 953, в файле run_commands self.run_command (cmd), файл "/usr/local/lib/python2.7/distutils/dist.py", строка 972, в файле run_command cmd_obj.run () "build / bdist.linux-i686 / egg / setuptools / command / easy_install.py", строка 211, в файле запуска "build / bdist.linux-i686 / egg / setuptools/command/easy_install.py ", строка 446, в файле easy_install" build / bdist.linux-i686 / egg / setuptools / command / easy_install.py ", строка 476, в файле install_item" build / bdist.linux-i686 / egg/setuptools/command/easy_install.py ", строка 655, в файле install_eggs" build / bdist.linux-i686 / egg / setuptools / command / easy_install.py ", строка 930, в файле build_and_install" build / bdist.linux-i686/egg/setuptools/command/easy_install.py ", строка 919, в файле run_setup" build / bdist.linux-i686 / egg / setuptools / sandbox.py ", строка 62, в файле run_setup" build / bdist.linux-i686/egg/setuptools/sandbox.py ", строка 105, в рабочем файле" build / bdist.linux-i686 / egg / setuptools / sandbox.py ", строка 64, в файле" setup.py ", строка130, в
    файле "/tmp/easy_install-Y2MKTg/lxml-2.3/setupinfo.py", строка 56, в файле ext_modules "/tmp/easy_install-Y2MKTg/lxml-2.3/buildlibxml.py", строка 311,в файле build_libxml2xslt "/tmp/easy_install-Y2MKTg/lxml-2.3/buildlibxml.py", строка 253, в файле cmmi "/tmp/easy_install-Y2MKTg/lxml-2.3/buildlibxml.py", строка 236, вызов исключения, строка 236, в вызовеКоманда «make -j6» вернула код 2

их было значительно больше, и если вам интересно, вы можете проверить здесь

Я попробовал несколько других способов установки.включая @ agilevic's, который возвратил ошибку, практически идентичную приведенной выше.Большинство других устанавливаются без усилий, но все не работают на from lxml import etree

Почему бы не использовать yum?Что ж, я смог легко установить lxml через yum install python-lxml, но это была установка по умолчанию в centOs на python2.4.На данный момент, вероятно, легче переоборудовать мой существующий проект для работы с 2.4.Однако в конечном итоге я действительно хотел бы решить эту проблему.Для себя и всех, кто может столкнуться с подобной проблемой в будущем.

Ответы [ 5 ]

2 голосов
/ 20 ноября 2012

Слово будущим гуглерам - я прибыл сюда с тем же симптомом, но установлена ​​достаточно свежая упакованная версия libxslt (1.1.26). Прошло около 10 минут, прежде чем я понял, что у меня также была древняя версия на моем пути (установлена ​​с пакетом астрономии casapy).

Мораль истории: запустите locate libxslt, чтобы найти старые версии, и проверьте свои $LD_LIBRARY_PATH! (Конечно, это относится к любому конфликту библиотек в целом).

2 голосов
/ 29 июня 2011

У вашего libxslt нет exsltMathXpathCtxtRegister, удалите его и вручную установите более новую версию (1.1.26 должно работать нормально).

Более старая версия lxml тоже может работать, попробуйте с easy_install lxml==2.2.8

1 голос
/ 21 июня 2011

Читая ваш вывод, похоже, что компоновщик выдает ошибку: undefined reference to gzopen64

Эта ошибка всплыла в lxml-2.3/buildlibxml.py", line 236, in call_subprocess, которая снова всплыла в make -j6

Я нашелпоток здесь: http://www.imagemagick.org/discourse-server/viewtopic.php?f=1&t=15524, который имел ту же ошибку компилятора.С предложением

Вы можете установить версию i586 библиотеки делегатов zlib.Вам может понадобиться установить 64-битную версию zlib и zlib-devel.

И ОП этого потока позже прокомментировал:

То, что я сделал сейчас, скачиваетисходник из zlib и скомпилировал его в локальную среду./ usr / local / includes и такие.перекомпилировал все плагины и снова скомпилировал ImageMagick.

Теперь все работает.Большое спасибо: D

Итак, я бы предложил переустановить zlib и zlib-devel, а затем снова попытаться установить lxml.

0 голосов
/ 28 июня 2011

Лучше всего, возможно, компилировать LibXML2 и LibXSLT из исходников. Предполагая, что префикс для вашей установки должен совпадать с вашим пользовательским Python, который выглядит как / usr / local, вот как это может быть (может быть более новая версия программного обеспечения, поэтому сначала проверьте это):

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

Если вышеперечисленное не компилируется, могут существовать другие зависимости, которые вы должны попытаться удовлетворить из пакетов yum, обычно это будут определенные библиотеки и / или * -devel пакеты с отсутствующими заголовочными файлами.

Как только это будет сделано, либо

easy_install lxml

или

pip install lxml
0 голосов
/ 21 июня 2011

Убедитесь, что на вашем компьютере установлены libxslt-dev и libxml2-dev (вы можете сделать это с помощью yum, я думаю);lxml не будет строить без них.

...