Python没有调用外部程序第2部分

时间:2013-01-16 18:11:24

标签: python postgresql

我遇到运行python程序(plpython3u,真的)作为postgres(9.2)的触发器时遇到问题。触发器使用以下语句调用python程序: 执行scalesmyone(new.id);

python程序成功地将某些内容写入文件(这表明触发器正在运行),然后尝试在我的Windows 7计算机上的C:驱动器上运行程序。它失败了,出现此错误:错误:WindowsError:[错误5]访问被拒绝。我现在正在使用子进程调用,但之前我尝试过子进程调用,但这不起作用。您可以看到here

以下是代码:

CREATE or replace FUNCTION scalesmyone (thename text)
RETURNS int
AS $$
a=5
f = open('C:\\JUNK\\frompython.txt','w')
f.write(thename)
f.close()
import subprocess
return_code = subprocess.call(["C:\\Users\\Jim\\Desktop\\BATfiles\\run_addcust.bat", '"hello"'])
$$ LANGUAGE plpython3u;

文件在那里。

吉姆

1 个答案:

答案 0 :(得分:1)

该错误表明运行Postgres / plpython的用户对该.bat文件没有执行权限(至少这是我在纯Python程序中获得的)。这可能不是子进程本身的问题。