【发布时间】:2013-05-31 03:19:43
【问题描述】:
所以,这有点令人困惑,但本质上我使用的是 Django,我想实例化一个子进程来运行 perl 脚本。我读过这可以用
arg = "/some/file/path/"
pipe = subprocess.Popen(["./uireplace", arg], stdin=subprocess.PIPE)
当我在views.py 中的适当函数中调用它时有效,但脚本需要sudo。然后我称之为
pipe = subprocess.Popen(["sudo","./uireplace", arg], stdin=subprocess.PIPE)
当我从终端在 python 中运行它时它可以工作,但是当它被网络上的随机用户调用时它不起作用。有什么方法可以自动输入该 sudo 的用户名和密码?问题是这不能通过提示来完成,所以它只是失败了。
【问题讨论】:
-
要么修复被调用/调用脚本的正确权限,要么让调用脚本/用户使用sudo without password。
标签: python django subprocess popen