ImportError:libexslt.so.0:无法打开共享对象文件:没有这样的文件或目录

时间:2015-03-17 09:29:24

标签: python python-2.7 lxml splunk

我正在尝试使用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

感谢您的帮助

2 个答案:

答案 0 :(得分:2)

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

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

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

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

如果您没有该系统的权限来执行此类操作,您可以使用环境变量来设置此类搜索路径,如您对问题的评论中引用的链接中所建议的那样(@jedwards)。 / p>

答案 1 :(得分:2)

如果你想从$ SPLUNK_HOME / bin运行一些东西,你应该使用“splunk cmd”命令来首先正确设置环境:

  

./ splunk cmd python some.py

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