我想创建一个图形化的python应用程序,它可以在Linux上执行一些外部程序,而不显示终端。
首先,我尝试使用subprocess.run()来查看它是否真的可以工作,但是Python3.7.3没有显示我编写的代码的结果。
import subprocess
subprocess.run(['sudo', 'apt', 'update'])
我更改了它以查看任何结果:
import subprocess
a = subprocess.run(['sudo', 'apt', 'update'])
print(a)
但它会立即显示以下结果:
CompletedProcess(args=['sudo', 'apt', 'update'], returncode=1)
这个脚本至少需要5秒钟才能完成,并且它首先需要sudo权限才能运行它,所以我不认为Python shell执行了这个脚本。
发布于 2019-06-19 05:35:21
使用pkexec而不是sudo解决了我的问题。感谢所有试图帮助我的人,尤其是@Charles Duffy。
现在它看起来像这样:
import subprocess
result = subprocess.run(['pkexec', 'apt', 'update'], stdout=subprocess.PIPE)
print(result.stdout)
https://stackoverflow.com/questions/56656782
复制相似问题