[英]Launching a python script in a new terminal from another python script
[英]Install a package by launching a new terminal through Python
我正在寫一個OS安全評級工具,它是一個GUI軟件,它將檢查重要安全組件的可用性,並允許用戶使用單個“安裝按鈕”安裝缺少的組件(例如IDS)。
我正在使用Pycharm作為我的IDE。 我想通過使用以下代碼的GUI安裝缺少的軟件組件:
os.system("sudo apt-get install snort-mysql")
當用戶單擊“安裝”(通過我創建的GUI)時,將執行上述代碼,並且他將能夠照常進行安裝。
但是,由於我使用的是IDE,因此單擊安裝按鈕時,問題是我無法輸入密碼,因為在IDE的跟蹤中得到以下信息:
sudo: no tty present and no askpass program specified
Sorry, try again.
我嘗試使用gksudo並設法輸入了密碼。 但是當安裝開始時,我得到以下信息:
After this operation, 18.3 MB of additional disk space will be used.
Do you want to continue [Y/n]? Abort.
用力y的gksudo: invalid option -- 'y'
導致gksudo: invalid option -- 'y'
我想知道是否有辦法啟動一個單獨的終端並從那里開始安裝。
您可以使用gksudo並將-y選項傳遞給apt-get install而不是gksudo,即
os.system('sudo "apt-get install snort-mysql"')
要么
os.system("sudo \"apt-get install snort-mysql\"")
您還可以將subprocess.Popen與管道一起使用,以允許您與子流程進行交互。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.