我正在尝试运行外部python脚本" PyClient.py"在Splunk上,它需要外部gRPC模块。我按照http://www.grpc.io/docs/quickstart/python.html的快速入门python指南在本地安装了gRPC模块。 splunkd文件中生成的日志如下:
06-16-2017 18:20:49.728 +0530 WARN IntrospectionGenerator:resource_usage - RU - Failure executing PDH query, skipping getting iostats data this collection cycle. Status code is -2147481643
06-16-2017 18:20:56.501 +0530 ERROR ExecProcessor - message from "python "C:\Program Files\Splunk\etc\apps\Test\bin\pyClient.py"" Traceback (most recent call last):
06-16-2017 18:20:56.501 +0530 ERROR ExecProcessor - message from "python "C:\Program Files\Splunk\etc\apps\Test\bin\pyClient.py"" File "C:\Program Files\Splunk\etc\apps\Test\bin\pyClient.py", line 2, in <module>
06-16-2017 18:20:56.501 +0530 ERROR ExecProcessor - message from "python "C:\Program Files\Splunk\etc\apps\Test\bin\pyClient.py"" import grpc
06-16-2017 18:20:56.501 +0530 ERROR ExecProcessor - message from "python "C:\Program Files\Splunk\etc\apps\Test\bin\pyClient.py"" File "C:\Program Files\Splunk\etc\apps\Test\bin\grpc\__init__.py", line 37, in <module>
06-16-2017 18:20:56.501 +0530 ERROR ExecProcessor - message from "python "C:\Program Files\Splunk\etc\apps\Test\bin\pyClient.py"" from grpc._cython import cygrpc as _cygrpc
06-16-2017 18:20:56.501 +0530 ERROR ExecProcessor - message from "python "C:\Program Files\Splunk\etc\apps\Test\bin\pyClient.py"" ImportError: DLL load failed: A dynamic link library (DLL) initialization routine failed.
06-16-2017 18:21:06.502 +0530 ERROR ExecProcessor - message from "python "C:\Program Files\Splunk\etc\apps\Test\bin\pyClient.py"" Traceback (most recent call last):
06-16-2017 18:21:06.502 +0530 ERROR ExecProcessor - message from "python "C:\Program Files\Splunk\etc\apps\Test\bin\pyClient.py"" File "C:\Program Files\Splunk\etc\apps\Test\bin\pyClient.py", line 2, in <module>
06-16-2017 18:21:06.502 +0530 ERROR ExecProcessor - message from "python "C:\Program Files\Splunk\etc\apps\Test\bin\pyClient.py"" import grpc
06-16-2017 18:21:06.502 +0530 ERROR ExecProcessor - message from "python "C:\Program Files\Splunk\etc\apps\Test\bin\pyClient.py"" File "C:\Program Files\Splunk\etc\apps\Test\bin\grpc\__init__.py", line 37, in <module>
06-16-2017 18:21:06.502 +0530 ERROR ExecProcessor - message from "python "C:\Program Files\Splunk\etc\apps\Test\bin\pyClient.py"" from grpc._cython import cygrpc as _cygrpc
06-16-2017 18:21:06.502 +0530 ERROR ExecProcessor - message from "python "C:\Program Files\Splunk\etc\apps\Test\bin\pyClient.py"" ImportError: DLL load failed: A dynamic link library (DLL) initialization routine failed.
有没有人对如何清除此错误有任何建议?或者如何在Splunk上安装外部gRPC模块?
提前致谢。
答案 0 :(得分:1)
这看起来像32/64位Windows不兼容。
安装gRPC时,请确保明确使用Python的Splunk分布到pip install grpcio
。
C:\Program Files\Splunk\<Python2.7 binary> -m pip install --upgrade pip
C:\Program Files\Splunk\<Python2.7 binary> -m pip install grpcio
答案 1 :(得分:0)
我已经找到了解决方案。我必须为我的python脚本编写一个包装器脚本,它取消设置或删除(del)“LD_LIBRARY_PATH”和“PYTHONPATH”。对于基于Linux的系统,我还必须取消设置或删除(del)“PATH”环境变量。 按照上述步骤操作后,Splunk也使用了我本地版本的Python和已安装的模块。它奏效了。希望这有助于任何试图在Splunk中使用外部模块的人,但似乎无法弄清楚为什么它不起作用。 :)