Problema ao instalar o lxml com o local de instalação personalizada para libxml2 / libxslt

2

Estou tentando instalar um módulo python chamado lxml na minha conta em um supercomputador que executa o RHEL.

Eu faço NÃO ter acesso root ou status de superusuário.

lxml requer as versões dev / devel de libxml2 e libxslt , porque elas incluem arquivos de cabeçalho que o lxml precisa criar. Mas o supercomputador tem as versões não-dev instaladas em seus diretórios root /usr , então instalei as versões dev no meu diretório home construindo-as a partir do código-fonte.

Ambos construídos sem problemas, e todos os arquivos de cabeçalho necessários estão em $HOME/usr/local/include/libxml2/libxml , etc.

No entanto, sempre que tento pip install lxml , ele tenta usar o método não-dev libxml2 & libxslt na raiz /bin :

[myusername@q0144 ~]$ pip install --install-option="--prefix=$HOME/python_modules" lxml
... (some unimportant messages) ...
Building against libxml2/libxslt in the following directory: /usr/local/lib
building 'lxml.etree' extension
gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/usr/local/include -I/usr/local/include/libxml2 -I/tmp/pip_build_myusername/lxml/src/lxml/includes -I/N/soft/rhel6/python/2.7.3/include/python2.7 -c src/lxml/lxml.etree.c -o build/temp.linux-x86_64-2.7/src/lxml/lxml.etree.o -w
In file included from src/lxml/lxml.etree.c:346:
/tmp/pip_build_myusername/lxml/src/lxml/includes/etree_defs.h:9:31: error: libxml/xmlversion.h: No such file or directory
/tmp/pip_build_myusername/lxml/src/lxml/includes/etree_defs.h:11:4: error: #error the development package of libxml2 (header files etc.) is not installed correctly
...(many more lines saying that the headers are missing, etc.)

E há várias outras dezenas de linhas dizendo que os pacotes de desenvolvimento não estão instalados corretamente, já que estão olhando para os errados.

Como obtenho o sistema para usar as versões de libxml2 / libxslt que eu instalei?

Eu até mesmo preencho meus diretórios $HOME/bin , $HOME/usr , etc. primeiro em .cshrc .

Apenas para garantir a cobertura de todas as minhas bases, eu também tentei criar lxml da fonte, seguindo as instruções no documento build.txt incluído no tarball de origem:

[myusername@q0144 lxml-3.3.5]$ python setup.py build_ext -i -I $HOME/usr/include/libxml2/libxml --without-cython --with-xslt-config=$HOME/usr/local/bin/xslt-config
Building lxml version 3.3.5.
Building without Cython.
Using build configuration of libxslt 1.1.28
Building against libxml2/libxslt in the following directory: /usr/local/lib
/N/soft/rhel6/python/2.7.3/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'bugtrack_url'
warnings.warn(msg)
running build_ext
building 'lxml.etree' extension
gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/usr/local/include -I/usr/include/libxml2 -I/N/hd00/myusername/Quarry/python_modules/lxml-3.3.5/src/lxml/includes -I/N/u/myusername/Quarry/usr/include/libxml2/libxml -I/N/soft/rhel6/python/2.7.3/include/python2.7 -c src/lxml/lxml.etree.c -o build/temp.linux-x86_64-2.7/src/lxml/lxml.etree.o -w
In file included from src/lxml/lxml.etree.c:346:0:
/N/hd00/rccaton/Quarry/python_modules/lxml-3.3.5/src/lxml/includes/etree_defs.h:
13:32: fatal error: libxslt/xsltconfig.h: No such file or directory
compilation terminated.
error: command 'gcc' failed with exit status 1

Então, basicamente, vejo o mesmo problema com ele, olhando para /user/local/lib em vez dos meus diretórios $HOME/user etc.

Como faço para contornar isso?

    
por ThreeQuartersCrazed 24.06.2014 / 20:05

1 resposta

1

Certifique-se de que os subdiretórios bin de ambos os pacotes (libxml2 / libxslt) estejam no seu PATH . Eles contêm *-config scripts que são usados durante a compilação de lxml para descobrir onde a libxml2 / libxslt foi instalada.

[pdobrogost@host /]$ echo $PATH
(...):/opt/libxslt-1.1.27/bin:/opt/libxml2-2.6.32/bin:(...)
[pdobrogost@host /]$ which xml2-config && which xslt-config
/opt/libxml2-2.6.32/bin/xml2-config
/opt/libxslt-1.1.27/bin/xslt-config
    
por 09.07.2014 / 17:51