我將Git支持添加到用Python編寫的現有應用程序(使用PyQt)。我決定通過subprocess.Popen
直接與Git命令交互,並解析不同命令的結果(因爲我們想要實現的幾件事情導入完整的第三方庫似乎不太合適)。使用Python的git-fetch進行通信
到目前爲止,我已成功合併git branch
和git remote
,這或多或少有效,因爲我仍在本地回購庫中。
現在我正在處理git fetch
並遇到困難。
首先,我從stderr上的gnome-keyring得到了一個「警告」。這是由於我的安裝有問題,但我們當然不應該因爲這種事情而掛斷。所以我簡單地忽略這個警告。可能這很不明智,但現在我認爲如果應該報告問題,我們可以接受這種解決方法。
但後來我遇到了問題,shell問我(再次在stderr上)輸入我的SSH密碼。這也是我在特定計算機上安裝的問題,但如果用戶更喜歡個人密碼,我們應該真的接受。所以我必須處理這種情況。
因此冗長的介紹後,這個問題是相當簡潔:
如果我通過subprocess.Popen
運行像git fetch
從Python中的shell命令,這外殼程序要求的用戶反饋,我怎麼能與它進行交互,從蟒蛇?
基本上我想顯示stderr輸出給用戶並允許他輸入他的密碼。 (然後當然實現一個選項來存儲這個密碼在應用程序中。)