Python (3.4) lxml パッケージを必要とする django アプリがあります。Red Hat サーバー環境で lxml が依存する c 共有ライブラリー libxslt と libxml2 をビルドするのにかなりの苦労がありました。ただし、pip install lxml
現在は正常に完了しており、コマンド ライン インタープリターで lxml をインポートして使用できます。
Apache を再起動すると、django アプリ内で lxml をインポートするとエラーが発生します。
ImportError: /usr/local/lib/python3.4/site-packages/lxml/etree.cpython-34m.so: undefined symbol: exsltMathXpathCtxtRegister
LD_LIBRARY_PATH が両方の環境 (/usr/lib) で同じに設定されていることを確認しました。
pip を使用して lxml を再インストールすると、pip は /usr/lib64 にある libxml2/libxslt に対してビルドしていることを通知します。/usr/lib64/ にあるすべての libxml2.so および libxslt.so ファイルを削除しましたが、lib64 に対してビルドしていること、インストールが正常に完了したこと、および lxml がコマンドラインですが、apache 経由ではありません。
pip は、インストールで使用している検出された libxslt のバージョンが 1.1.23 であることも示しています。ただし、strace を使用して、インタープリターを使用してインポートすると、ロードされるライブラリーが /usr/lib/libxslt.so.1.1.28 であることを確認しました。Apache を介してどのライブラリがロードされているかを調べるためのツールや手法を知りません。
何が起こっているのか、または問題をデバッグする方法について誰かが理論を持っていますか? 前もって感謝します!