gpt4 book ai didi

python - 无法通过我的脚本中的 subprocess.call 正确使用 "psql"命令行

转载 作者:太空宇宙 更新时间:2023-11-03 17:40:17 24 4
gpt4 key购买 nike

我正在尝试在 python 中运行这样的命令:

subprocess.call(['psql', '--username=openerp', '--dbname=sf_template', '--no-password', '--command="select pg_terminate_backend(procpid) from pg_stat_activity where datname = \'sf_template\' and procpid <> pg_backend_pid()"'], env={'PGPASSWORD': 'mypassword'})

我得到以下详细输出:

psql: FATAL:  password authentication failed for user "<myCurrentOSuser>"

但是如果我通过 shell 运行这个命令:

PGPASSWORD=mypassword
psql --username=openerp --dbname=sf_template --no-password --command="select pg_terminate_backend(procpid) from pg_stat_activity where datname = 'sf_template' and procpid <> pg_backend_pid()"

工作正常。

为什么?我在这里缺少什么?

最佳答案

(感谢前三位评论者 - 我在您的帮助下解决了问题)。

我将整个参数作为一个字符串发送给 subprocess.call(没有完全理解数组语法)。

subprocess.call(['psql --username=openerp --dbname=sf_template --no-password --command="select pg_terminate_backend(procpid) from pg_stat_activity where datname = \'sf_template\' and procpid <> pg_backend_pid()"'], env={'PGPASSWORD': 'mypassword'})

关于python - 无法通过我的脚本中的 subprocess.call 正确使用 "psql"命令行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30655408/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com