首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Server存储过程中导入Python脚本

在Server存储过程中导入Python脚本
EN

Stack Overflow用户
提问于 2020-10-26 02:51:59
回答 1查看 1.4K关注 0票数 3

我有一堆本地Python脚本,需要从本地执行。如果我尝试导入标准Python库(例如熊猫),就没有问题。当我试图导入位于C:/Users/amusaeva/PyCharmProjects/ARW/WorkforceModel文件夹中的名为Simulator.py的Python文件时,我会收到一个错误。

代码语言:javascript
复制
EXEC sp_execute_external_script @language =N'Python',
@script=N'
import sys
sys.path.insert(0, "C:/Users/amusaeva/PyCharmProjects/ARW/WorkforceModel")
import Simulator
'

下面是运行此SQL脚本时收到的错误消息:

Msg 39004,16级,状态20,0行

在使用HRESULT0x80004004执行“sp_execute_external_script”时发生了“Python”脚本错误。

Msg 39019,16级,状态2,0行

发生了外部脚本错误:

在执行中出错。有关更多信息,请查看输出。回溯(最近一次调用):

文件"",第5行,在

文件"C:\ProgramData\MSSQLSERVER\Temp-PY\Appcontainer1\D4294516-2993-475D-9F61-DF7C5AF4FE69\sqlindb_0.py",第35行,在转换中

进口模拟器

ModuleNotFoundError:没有名为“模拟器”的模块

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

来自外部脚本的STDOUT消息:

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

回溯(最近一次调用):

文件"C:\Program \Microsoft Server\MSSQL15.MSSQLSERVER\PYTHON_SERVICES\lib\site-packages\revoscalepy\computecontext\RxInSqlServer.py",第605行,在rx_sql_satellite_call中

rx_native_call("SqlSatelliteCall",params)

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

ret =px_call(函数名,params)

RuntimeError:恢复功能失败。

我知道在那个Simulator.py目录中肯定有一个名为WorkforceModel的Python脚本,我不认为我有任何语法错误,因为当我通过一个PS窗口运行Python中的确切三行时,这个模块就会被导入而没有问题。为什么我的存储过程看不到Python脚本?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-16 03:18:39

结果是我需要整理一些权限。我用这篇文章作为灵感:https://www.red-gate.com/simple-talk/sql/data-science-sql/sql-server-machine-learning-2019-working-with-security-changes/,下面是我遵循的具体步骤。应用程序容器是在Server设置期间创建的。它们是Windows本地目录中的对象,例如本地目录中的所有对象,它们都有一个唯一的SID来标识应用程序容器。

所有应用程序容器对象在本地目录中都有一个固定的SID,即S-1-15-2-1。可以使用应用程序icacls授予权限。

将命令提示符作为administrator.打开

  1. 运行以下命令:

icacls C:\Users\amusaeva\PyCharmProjects\ARW\WorkforceModel /grant *S-1-15-2-1:(OI)(CI)F /t

  1. 打开Server配置管理器,选择“Server服务”。查找“Server”,右键单击它并选择“重新启动”.

在此之后,我没有问题地运行我的代码(我唯一需要更改的是使用C:\\Users\\amusaeva\\PyCharmProjects\\ARW\\WorkforceModel的斜杠)。

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

https://stackoverflow.com/questions/64530962

复制
相关文章

相似问题

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