Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从MSSQL运行Python脚本_Python_Sql Server_Sql Server 2008_Cmd_Anaconda - Fatal编程技术网

从MSSQL运行Python脚本

从MSSQL运行Python脚本,python,sql-server,sql-server-2008,cmd,anaconda,Python,Sql Server,Sql Server 2008,Cmd,Anaconda,我想运行或执行MSSQL 2008中的Python脚本 我有一个使用python的服务器,我想要的是本地网络中的任何PC都可以使用一些输入来执行脚本,这些输入存储在MSSQL 2008 R2中。 python脚本使用pandas(read_sql)读取这些变量,然后进行一些分析,然后返回一个图像和一个表,它们都保存在服务器的文件夹中,任何人都可以看到 我的问题是:如何执行另一台有python的计算机中的python脚本,但我没有,我只需要存储的输出,但这些输出会随时间变化,所以我必须随时执行该脚

我想运行或执行MSSQL 2008中的Python脚本

我有一个使用python的服务器,我想要的是本地网络中的任何PC都可以使用一些输入来执行脚本,这些输入存储在MSSQL 2008 R2中。 python脚本使用pandas(read_sql)读取这些变量,然后进行一些分析,然后返回一个图像和一个表,它们都保存在服务器的文件夹中,任何人都可以看到

我的问题是:如何执行另一台有python的计算机中的python脚本,但我没有,我只需要存储的输出,但这些输出会随时间变化,所以我必须随时执行该脚本?

我一直在尝试将MSSQL 20008与cmd作业(操作系统(CmdExec))一起使用,下面是代码:

USE msdb ;  
GO  
EXEC dbo.sp_add_job  
    @job_name = N'hola' ;  
GO  
EXEC sp_add_jobstep  
    @job_name = N'hola',  
    @step_name = N'hola1',  
    @subsystem = N'CMDEXEC',  
    @command = N'python \..\script.py',   
    @retry_attempts = 1,  
    @retry_interval = 1;
GO  
我执行它的每一部分,但我没有得到任何错误,但当我来看看是否创建了图像,我找不到它。(我将图像保存到一个已知文件夹:fig.savefig('C:\Images3\\Prueba3.png'))

我还尝试使用xp\u cmdshell

EXEC xp_cmdshell 'python \\server\script.py';  
GO
但是它返回了这个错误:“python”no se reconco como un comando interno o externo”,但是python在系统的路径中。当我使用cmd并输入python时,它会打开python,当我输入“python\server\script.py”时,它会执行脚本

同样,对于xp_cmdshell,我尝试使用powershell,生成并脚本执行python,当我在power shell中执行该脚本时,它可以工作,但当我输入以下代码时:

EXEC xp_cmdshell 'powershell.exe -ExecutionPolicy Unrestricted -file  C:\Images3\script.ps1';  
GO 
它给出的错误与前面的“EXEC xp\u cmdshell‘python\server\script.py’中的错误相同

我使用的是anaconda python,当我在CMD中输入path时,它就在那里:查看带有路径的图像

但我不知道如何执行它

请有人帮忙,或者知道另一种方法

我非常感谢你的时间和支持

祝你今天过得愉快

它通过使用

EXEC xp_cmdshell 'C:/.../python.exe C:\...\script.py';  
GO
一个问题是,您需要在xp_cmdshell中使用.exe,因此仅使用python命令它不起作用,您就必须使用python.exe。
另一个问题是,python脚本必须位于执行脚本的计算机中,以前该脚本位于公共服务器中,但它拒绝了该权限,并且当脚本将目录更改为此服务器时,它工作了

还可以尝试执行EXEC xp_cmdshell“C:\Users\pmanto pc\AppData\Local\Continuum\Anaconda3\python.exe\\emma01srv\Mantenimiento\programacion\python\Clustering\Main_2.py”;GO输出被拒绝访问这给了我权限被拒绝的错误:C:\Python27\python.exe:无法打开文件'C:\..\script.py':[Errno 13]权限denied@KshitijSaxena有点晚了,但请尝试更改文件的权限(允许sql server访问该文件)