- Mark as New
- Bookmark Message
- Subscribe to Message
- Mute Message
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I have a python script on our splunk server to ingest data from a database using pymssql and _mssql. I added this script through the web gui in Manager > Data Inputs > Scripts. I can run the script manually just fine. But when its executed by splunk, in the splunkd logs it says ImportError: No module named _mssql.
The pymssql/_mssql package was installed manually.
- Mark as New
- Bookmark Message
- Subscribe to Message
- Mute Message
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

Splunk uses it's own python to execute scripts. So if Splunk Python doesn't know about _mssql, it won't find it. Did you install _mssql to the file system? Try running manually with splunk cmd python /path/to/your/script
. I got around that by using a sh script to call the python script with #!/usr/bin/python
as the executable to use.
- Mark as New
- Bookmark Message
- Subscribe to Message
- Mute Message
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Guys,
Instead setting all those parameters and creating subproccess.
Simply copy your required packages/files from
/usr/local/lib/python2.7/dist-packages
to
/opt/splunk/lib/python2.7/site-packages/
- Mark as New
- Bookmark Message
- Subscribe to Message
- Mute Message
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

I downvoted this post because this is not supported, and as a comment suggested, will break between upgrades (and also not be transferrable between systems)
- Mark as New
- Bookmark Message
- Subscribe to Message
- Mute Message
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

Possible, but if you upgrade, you may lose the files.
- Mark as New
- Bookmark Message
- Subscribe to Message
- Mute Message
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I just use wrapper python script with non-splunk python with installed modules in scripted input. (taken from here) Something like that:
import os, sys
for envvar in ("PYTHONPATH", "LD_LIBRARY_PATH"):
if envvar in os.environ:
del os.environ[envvar]
python_executable = "D:\Python27\python.exe"
real_script = "path_to_script"
os.execv(python_executable, [ python_executable, real_script ] + sys.argv[1:])
- Mark as New
- Bookmark Message
- Subscribe to Message
- Mute Message
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

Splunk uses it's own python to execute scripts. So if Splunk Python doesn't know about _mssql, it won't find it. Did you install _mssql to the file system? Try running manually with splunk cmd python /path/to/your/script
. I got around that by using a sh script to call the python script with #!/usr/bin/python
as the executable to use.
- Mark as New
- Bookmark Message
- Subscribe to Message
- Mute Message
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

You could, but I just use the python print command, and splunk eats it just fine. I used the exec command from the sh script and it works great.
- Mark as New
- Bookmark Message
- Subscribe to Message
- Mute Message
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
That does get it to execute, the data being ingested was being printed, which splunk would read. But now that its a shell script executing it, i imagine ill have to write to a file or something?
