首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Server python机器学习无法访问文件系统

Server python机器学习无法访问文件系统
EN

Stack Overflow用户
提问于 2019-06-15 15:36:51
回答 3查看 2K关注 0票数 1

Server 2017使用sp_execute_external_script ( Server机器学习)在数据库上下文中运行python脚本。python脚本需要从文件系统加载文件。所有东西(数据库和文件系统)都是本地的。错误跟踪:

Msg 39004,Niveau 16,tat 20,Ligne 1

Une de script,Python,s‘’est produite lors de l‘’exécution de sp_execute_external_script,avecHRESULT0x80004004。

Msg 39019,Niveau 16,tat 2,Ligne 1

这是最优秀的产品:

在执行中出错。有关更多信息,请查看输出。

回溯(最近一次调用):

文件"",第5行,在

文件"C:\PROGRA~1\MICROS~3\MSSQL1~2.MSS\MSSQL\EXTENS~1\MSSQLSERVER201701\B2E71FC7-8E08-4D86-8B82-38AD564DBC9D\sqlindb.py",第43行,在转换中

代码语言:javascript
复制
im = Image.open(adresse_image)

文件"C:\Program \Microsoft Server\MSSQL14.MSSQLSERVER2017\PYTHON_SERVICES\lib\site-packages\PIL\Image.py",第2410行,打开

代码语言:javascript
复制
fp = builtins.open(filename, "rb")

'C:\Users\aubertl\Downloads\plage_corse_2.jpg‘:PermissionError: Errno 13权限被拒绝:

SqlSatelliteCall错误:执行中的错误。有关更多信息,请查看输出。

STDOUT provenant du script外部消息:

特快专递版将继续执行。

SqlSatelliteCall函数失败。有关更多信息,请参见控制台输出。

回溯(最近一次调用):

文件"C:\Program \Microsoft Server\MSSQL14.MSSQLSERVER2017\PYTHON_SERVICES\lib\site-packages\revoscalepy\computecontext\RxInSqlServer.py",行406,在rx_sql_satellite_call中

代码语言:javascript
复制
rx_native_call("SqlSatelliteCall", params)

文件"C:\Program \Microsoft Server\MSSQL14.MSSQLSERVER2017\PYTHON_SERVICES\lib\site-packages\revoscalepy\RxSerializable.py",第291行,在rx_native_call中

代码语言:javascript
复制
ret = px_call(functionname, params)

RuntimeError:恢复功能失败。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-06-15 23:45:27

默认情况下,python服务在"NT Service\MSSQLLaunchpad“下运行。文件位于"C:\Users\aubertl“文件夹中,默认情况下,MSSQLLaunchpad无法访问该文件夹。

我建议创建另一个目录,如C:\PytrhonScripts“,并将对该文件夹的读取权限授予MSSQLLaunchpad。

票数 2
EN

Stack Overflow用户

发布于 2020-01-15 17:34:11

来自授予所有应用程序包对文件文件夹的权限

备选案文1:互动

  • 启动并右键单击目标文件文件夹。
  • 从上下文菜单中选择Properties
  • 切换到Security选项卡。
  • 单击Edit按钮。
  • 单击Add...添加ALL APPLICATION PACKAGES特权。
  • 勾选Modify和/或Full Control以允许Read/Write进入此目录。

还可以添加Everyone以防止任何进一步的问题。

选项2:命令行

改编自StackOverflow答案,在Administator命令提示符中运行以下命令:

代码语言:javascript
复制
icacls "X:\DataDir" /grant "ALL APPLICATION PACKAGES:(OI)(CI)F" /T
票数 3
EN

Stack Overflow用户

发布于 2019-06-17 12:11:50

右键单击目录->,授予对->的访问权限,添加"everyone“。然后脚本运行并生成所需的输出。显然无法添加与服务一起运行的用户(NT Service\MSSQLLaunchpad),因此这是一个解决办法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56611792

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档