lxml com localização de instalação personalizada para libxml2 / libxslt não encontra localização correta

1

Estou usando o CentOS 6.5 e quero usar versões mais recentes do Python, lxml, libxml2 e libxslt2 do que o que está disponível nos repositórios.

Então, eu construo libxml2, libxslt2 e python 2.7.8 a partir do zero, e adiciono todos os caminhos binários ao meu $ PATH. "xml2-config --cflags --libs" inclui os locais corretos (customizados) das bibliotecas libxml e inclui.

Eu configure / make / make instale o python-2.7.8 em meu diretório home, inclua seu bin no meu caminho. Instale setuptools por "python setup.py install", seguido por easy_install pip.

Por fim, instale o lxml ... Isso localizará meus locais corretos da libxml.

No entanto, 'from lxml import etree' falha porque espera minha versão mais nova do libxml mas olha para / usr / lib64 / libxml e falha.

Por que não está detectando minha localização da libxml? Ele detecta ao instalar o lxml, mas não ao importá-lo?

ImportError: /usr/lib64/libxml2.so.2: versão 'LIBXML2_2.9.0' não encontrada (requerida por /home/hsundara/packages_installed/python-2.7.8/lib/python2.7/site-packages/ lxml / etree.so)

Mas ao construir -

Criando contra libxml2 / libxslt em um dos seguintes diretórios:

  /home/hsundara/packages_installed/libxslt-1.1.28/lib
  /home/hsundara/packages_installed/libxml2-2.9.1/lib

Alguma solução?

    
por Hari Sundararajan 10.08.2014 / 13:40

1 resposta

1

Você deve ser capaz de configurar lxml para encontrar sua própria versão de libxml2 e libxslt usando a opção --auto-rpath install.

Primeiro, desinstale sua versão atual de lxml .

pip uninstall lxml

Em seguida, adicione xml2-config e xslt-config ao seu caminho.

export PATH=/home/hsundara/packages_installed/libxslt-1.1.28/bin:/home/hsundara/packages_installed/libxml2-2.9.1/bin:$PATH

Por fim, instale lxml transmitindo a opção auto-rpath install:

pip install lxml --install-option="--auto-rpath"
    
por 09.07.2016 / 21:33

Tags