ImportError: libexslt.so.0: cannot open shared object file: No such file or directory

ImportError: libexslt.so.0: cannot open shared object file: No such file or directory

我正在尝试使用 python 2.7.8 附带的 splunk 6 来解析一些 XML usign lxml。

from lxml import etree

我看到以下错误

[root@**** bin]# ./python some.py
Traceback (most recent call last):
  File "some.py", line 1, in <module>
    from lxml import etree
ImportError: libexslt.so.0: cannot open shared object file: No such file or directory

我在 splunk/lib/

中也有这个
lrwxrwxrwx  libexslt.so -> libexslt.so.0.8.17
lrwxrwxrwx  libexslt.so.0 -> libexslt.so.0.8.17
-r-xr-xr-x  libexslt.so.0.8.17

感谢您的帮助

假设您 运行 操作系统具有可通过 ldconfig 实用程序管理的库路径(如 GNU/Linux),您可以尝试以下操作:

# echo "/your/path/to/splunk/lib" >> /etc/ld.so.conf.d/splunk.conf
# ldconfig

这里的问题是没有设置共享对象的搜索路径,所以应用程序无法知道在哪里找到它。

如果您 运行 没有 ldconfig 的操作系统,我建议您稍微搜索一下管理该特定情况下的库路径的实用程序(或者只是用更多更新您的问题信息)。

如果您在该系统上没有执行此类操作的权限,您可以使用环境变量来设置此类搜索路径,如问题评论中提到的 link 中所建议的那样(@杰德沃兹)。

如果您想 运行 从 $SPLUNK_HOME/bin 中获取一些东西,您应该先使用 "splunk cmd" 命令正确设置环境:

./splunk cmd python some.py

如果您想使用 Splunk python,这是首选方法,并且可以正确模拟 python 脚本在 Splunk 内部触发时 运行 的方式(例如,作为警报脚本)。