簡體   English   中英

通過Python啟動新終端來安裝軟件包

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM