2017-06-09 20 views
1

運行Python腳本我想運行或從MSSQL 2008從MSSQL

執行一個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_cmdshell的

EXEC xp_cmdshell 'python \\server\script.py'; 
GO 

但這個錯誤:「 「python」不支持como un comando interno o externo「,但python在系統的路徑中。當我使用CMD和我entre python,它打開python,並且當我輸入「python \ server \ script.py」它執行腳本

也與xp_cmdshell我嘗試使用powershell,並使腳本執行python ,當我在它的工作電源外殼執行該腳本,但是當我輸入驗證碼:

EXEC xp_cmdshell 'powershell.exe -ExecutionPolicy Unrestricted -file C:\Images3\script.ps1'; 
GO 

它給了我同樣的錯誤在之前「EXEC xp_cmdshell的‘蟒蛇\服務器\ script.py’」 。

我使用的是水蟒蟒,當我在CMD輸入路徑它是存在的:參見圖像與PATH enter image description here

但我不知道如何執行它。

請有人幫忙,或知道另一種方式來做到這一點。

我真的很珍惜你的時間和你的支持

有一個非常美好的一天!

+0

也嘗試 'EXEC xp_cmdshell'C:\ Users \ pmanto-pc \ AppData \ Local \ Continuum \ Anaconda3 \ python.exe \\ emma01srv \ Mantenimiento \ programacion \ Python \ Clustering \ Main_2。PY「; GO' 輸出被拒絕訪問 –

回答

1

它的工作使用

EXEC xp_cmdshell 'C:/.../python.exe C:\...\script.py'; 
GO 

的一個問題是,你需要在xp_cmdshell的使用.exe文件,所以只用python命令它不工作,你必須使用python.exe。 另一個問題是,python腳本必須在執行腳本的計算機上,以前腳本是在一個公共服務器上,但它拒絕了權限,並且當腳本被改變爲目錄到這個服務器時,它就起作用了!