Машинное обучение Python SQL Server не может получить доступ к файловой системе - PullRequest
0 голосов
/ 15 июня 2019

SQL Server 2017 с использованием sp_execute_external_script (машинного обучения SQL Server) для запуска сценария python в контексте базы данных. Сценарий python должен загрузить файл из файловой системы. Все (база данных и файловая система) локально на моем ПК. Трассировка ошибки:

Msg 39004, Niveau 16, État 20, Ligne 1

Ошибка сценария «Python» - лучший продукт «sp_execute_external_script» avec HRESULT 0x80004004.

Сообщение 39019, Niveau 16, État 2, Ligne 1

Une erreur de script externe s'est productite:

Ошибка в выполнении. Проверьте выходные данные для получения дополнительной информации.

Traceback (последний вызов был последним):

Файл "", строка 5, в

Файл "C: \ PROGRA ~ 1 \ MICROS ~ 3 \ MSSQL1 ~ 2.MSS \ MSSQL \ EXTENS ~ 1 \ MSSQLSERVER201701 \ B2E71FC7-8E08-4D86-8B82-38AD564DBC9D \ sqlindb.py", строка 43, в преобразовании

im = Image.open(adresse_image)

Файл "C: \ Program Files \ Microsoft SQL Server \ MSSQL14.MSSQLSERVER2017 \ PYTHON_SERVICES \ lib \ site-packages \ PIL \ Image.py", строка 2410, в открытом виде

fp = builtins.open(filename, "rb")

PermissionError: [Errno 13] В доступе отказано: 'C: \ Users \ aubertl \ Downloads \ plage_corse_2.jpg'

SqlS satelliteCall error: Ошибка в выполнении. Проверьте вывод для получения дополнительной информации.

Сообщение (я) STDOUT Provenant du script externe:

Express Edition будет по-прежнему применяться.

Ошибка функции SqlSatellCall. Пожалуйста, смотрите вывод консоли для получения дополнительной информации.

Traceback (последний последний вызов):

Файл "C: \ Program Files \ Microsoft SQL Server \ MSSQL14.MSSQLSERVER2017 \ PYTHON_SERVICES \ lib \ site-packages \ revoscalepy \ computecontext \ RxInSqlServer.py", строка 406, в rx_sql_satell_call

rx_native_call("SqlSatelliteCall", params)

Файл "C: \ Program Files \ Microsoft SQL Server \ MSSQL14.MSSQLSERVER2017 \ PYTHON_SERVICES \ lib \ site-packages \ revoscalepy \ RxSerializable.py", строка 291, в rx_native_call

ret = px_call(functionname, params)

RuntimeError: сбой функции revoscalepy.

Ответы [ 2 ]

1 голос
/ 16 июня 2019

По умолчанию службы python запускаются в «NT Service \ MSSQLLaunchpad». Файл находится в папке «C: \ Users \ aubertl», которая по умолчанию недоступна MSSQLLaunchpad.
Я бы посоветовал создать еще один каталог, например C: \ PytrhonScripts ", и предоставить MSSQLLaunchpad доступ на чтение к этой папке.

0 голосов
/ 17 июня 2019

щелкните правой кнопкой мыши на каталог -> предоставить доступ к -> Добавить "все". И тогда скрипт запускается и выдает желаемый результат. Пользователь, с которым работает служба (NT Service \ MSSQLLaunchpad), очевидно, не может быть добавлен, поэтому это обходной путь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...