首页 > 解决方案 > 提示用户输入 sudo 密码以通过 tkinter GUI 和 python3 运行 shell 命令

问题描述

场景:我有一个 tkinter 窗口,它有一个按钮和一个密码输入框,当按下按钮时,它将运行一个命令来执行以下操作

sudo apt install mc -y

代码按预期运行和工作。但是我不希望通过终端提升密码。

目标 我希望通过 tkinter gui 提示 sudo 密码

问题

  1. 我应该使用窗口上的输入控件来收集密码吗?并将其传递给子流程。你会怎么做?我还没有找到任何明确的 sudo 示例。
  2. 我应该采取不同的方法吗?

代码片段

import os
import subprocess as sp
from tkinter import *
from tkinter import ttk
from ttkthemes import ThemedTk

#Window Setup
win = ThemedTk(theme ='clam')
win.geometry('500x400')

#function
def example():
    sp.call (["sudo", "-S", "apt", "install", "mc", "-y"])

#button    
btn = ttk.Button(win,text="Begin Test ",command=example)
btn.place(x=180, y=320, height= 30, width=150)

#password Textbox
pwdtxt = ttk.Entry(win, show="*")
pwdtxt.place(x=180, y=350, height= 30, width=150)

win.mainloop()  

标签: pythonpython-3.xlinuxtkinterterminal

解决方案


推荐阅读