私はCentOS 6.5を使用しており、リポジトリで利用可能なものよりも最新のPython、lxml、libxml2、libxslt2を使用したいと思います。
そのため、libxml2、libxslt2、python 2.7.8を最初からビルドし、すべてのバイナリパスを$ PATHに追加しました。 "xml2-config --cflags --libs"には、libxmlライブラリの正しい(カスタム)場所が含まれています。
python-2.7.8configure/make/makeを私のホームディレクトリにインストールし、そのbinを私のパスに追加しました。 「python setup.py install」を介してsetuptoolsをインストールし、easy_install pipをインストールします。
最後に、pip install lxml...これは私のlibxmlの正しい場所を見つけました。
ただし、「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
最後にインストールlxmlauto-rpath
インストールオプションを渡す:
pip install lxml --install-option="--auto-rpath"