How can I use an external python module with SQL 2017 sp_execute_external_script?

Viewed 742

I'm testing out the SQL 2017 machine learning services that allow you to run python scripts in a stored procedure. I see plenty of examples of how to run a python script when the script is defined in the stored procedure itself, but I'd like to know how to import my own python modules. Something like this:

EXEC sp_execute_external_script
@language = N'Python',
@script = N'
from test import sample
x = sample.SomeClass()
x.SomeFunction()
'

Is this possible? Is there another method for my to run my own python scripts in SQL?

1 Answers

Yes you may do this by extending the sys.path environment variables by the adding the location of test module in your code like this

EXEC sp_execute_external_script
@language = N'Python',
@script = N'
import sys
sys.path += ['D:\\path_to_your_test_module']
from test import sample as sa
x = sa.SomeClass()
x.SomeFunction()
'
Related