【问题标题】:lxml runs in interpreter but not through apache/mod_wsgilxml 在解释器中运行,但不通过 apache/mod_wsgi
【发布时间】:2016-03-05 21:48:50
【问题描述】:

我有一个需要 Python (3.4) lxml 包的 django 应用程序。在我的红帽服务器环境中构建 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 文件,并且很困惑地发现 pip 继续告诉我它是针对 lib64 构建的,安装成功完成,并且 lxml 在命令行但不是通过apache。

pip 还说它在安装中使用的检测到的 libxslt 版本是 1.1.23。但是,我使用 strace 看到,当我使用解释器导入时,加载的库是 /usr/lib/libxslt.so.1.1.28。我不知道任何工具或技术可以找出正在通过 apache 加载的库..

是否有人对正在发生的事情或如何调试问题有任何理论?提前致谢!

【问题讨论】:

    标签: python django apache lxml libxslt


    【解决方案1】:

    已通过从 usr/lib64/ 中删除 libexslt.so 文件进行修复。

    【讨论】:

      猜你喜欢
      • 2013-05-05
      • 1970-01-01
      • 2021-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-30
      • 1970-01-01
      相关资源
      最近更新 更多