我将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输出给用户并允许他输入他的密码。 (然后当然实现一个选项来存储这个密码在应用程序中。)