0

大家好,我正在学习 python 脚本,现在卡住了,(使用 wxpython 进行 GUI)

我的问题是,我想运行 build.system 但 build.system 在执行开始后要求输入系统密码,我尝试使用 pexpect,但我不能使用“sudo”。由于某种原因我不能使用 sudo 我也试过这个

subprocess.call("echo ******* | sudo -S ./build.system %s" % (str(mode)))

使用 Pexpect:

child = pexpect.spawn("./build.system %s" % (str(mode)))
child.interact()
child.expect("[sudo] password for system:")
child.sendline("********")

我也试过linux命令expect。我得到的输出:

INFO: building for board
INFO: keeping existing sandbox /home/system/sandbox
[sudo] password for system: 

预期是:

INFO: building for Stretch board
INFO: keeping existing sandbox /home/qvisdvr/sandbox
[sudo] password for qvisdvr:********install alarms/alarms.h
install alarms/alarms_int.h
install ccm/ccm.h
install common/defines.h
[contd]

寻求好的建议,提前谢谢,

4

1 回答 1

0
      try:
          proc = subprocess.Popen(["./build.system  %s "  % (str(mode))], shell=True)
          proc.stdin.write("******")
          proc.stdin.flush()
      except AttributeError:
          pass

这对我有用。

于 2013-06-07T04:44:28.747 回答