libxml2/libxslt의 사용자 정의 설치 위치를 사용하여 lxml을 설치하는 데 문제가 있습니다.

libxml2/libxslt의 사용자 정의 설치 위치를 사용하여 lxml을 설치하는 데 문제가 있습니다.

lxmlRHEL을 실행하는 슈퍼컴퓨터에 내 계정을 호출하는 Python 모듈을 설치하려고 합니다.

그래요아니요루트 액세스 권한 또는 수퍼유저 상태가 있어야 합니다.

lxmllibxml2및 의 dev/devel 버전에는 libxslt빌드해야 하는 헤더 파일이 포함되어 있으므로 필요합니다. 하지만 슈퍼컴퓨터에는 루트 디렉터리에 개발 버전이 아닌 버전이 설치되어 있으므로 lxml소스에서 빌드하여 /usr개발 버전을 내 디렉터리에 설치했습니다 .home

둘 다 원활하게 빌드되고 오류가 발생하지 않으며 필요한 모든 헤더 파일이 $HOME/usr/local/include/libxml2/libxml기다리고 있습니다.

그러나 시도할 때마다 루트 디렉토리에서 pip install lxmldev가 아닌 libxml2&를 사용하려고 시도합니다.libxslt/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.)

개발 패키지가 잘못된 패키지를 찾고 있었기 때문에 올바르게 설치되지 않았음을 나타내는 수십 줄도 있습니다.

libxml2설치된 /version을 시스템에서 사용하려면 어떻게 해야 합니까 ?libxslt

나는 심지어 $HOME/bin처음 $HOME/usr에 있었다 .cshrc.

모든 기반이 포함되었는지 확인하기 위해 소스 tarball에 포함된 문서 lxml의 지침에 따라 소스에서 빌드를 시도했습니다.build.txt

[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

그래서 기본적으로 etc 디렉토리 /user/local/lib가 아닌 동일한 문제가 발생했습니다 .$HOME/user

이 문제를 어떻게 해결할 수 있나요?

답변1

bin두 패키지(libxml2/libxslt)의 하위 디렉터리가 사용자의 디렉터리에 있는지 확인하세요 PATH. 여기에는 *-configlibxml2/libxslt가 설치된 위치를 찾기 위해 lxml을 컴파일하는 동안 사용되는 스크립트가 포함되어 있습니다.

[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

관련 정보