具有 libxml2/libxslt 自定义安装位置的 lxml 找不到正确的位置

具有 libxml2/libxslt 自定义安装位置的 lxml 找不到正确的位置

我正在使用 CentOS 6.5,并且希望使用比存储库中提供的版本更新的 Python、lxml、libxml2 和 libxslt2 版本。

因此,我从头开始构建 libxml2、libxslt2 和 python 2.7.8,并将所有二进制路径添加到我的 $PATH 中。 “xml2-config --cflags --libs”包括 libxml 库和包含的正确(自定义)位置。

我将 python-2.7.8 配置/make/make 安装到我的主目录,将其 bin 添加到我的路径。通过“python setup.py install”安装setuptools,然后安装easy_install pip。

最后,pip install lxml ...这找到了我的 libxml 的正确位置。

但是,“from lxml import etree”失败,因为它需要我的较新版本的 libxml,但它查看 /usr/lib64/libxml 并失败。

为什么它没有检测到我的 libxml 位置?它在安装 lxml 时检测到它,但在导入时检测不到它?

ImportError:/usr/lib64/libxml2.so.2:找不到版本“LIBXML2_2.9.0”(/home/hsundara/packages_installed/python-2.7.8/lib/python2.7/site-packages/lxml/etree 需要。所以)

但在建造时——

在以下目录之一中针对 libxml2/libxslt 进行构建:

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

有什么解决办法吗?

答案1

您应该能够配置lxml找到您自己的版本libxml2库文件使用--auto-rpath安装选项。

首先,卸载当前版本的lxml

pip uninstall lxml

然后,将xml2-config和添加xslt-config到您的路径中。

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

最后,安装lxml传入auto-rpath安装选项:

pip install lxml --install-option="--auto-rpath"

相关内容