【发布时间】:2019-02-27 21:20:19
【问题描述】:
我正在向用 Python(使用 PyQt)编写的现有应用程序添加 Git 支持。我决定通过subprocess.Popen直接与Git命令交互,并解析不同命令的结果(因为对于我们想要实现的几件事,导入一个完整的第三方库似乎并不合适)。
到目前为止,我已成功合并 git branch 和 git remote,这或多或少是有效的,因为我仍在本地仓库中。
现在我正在处理git fetch 并遇到困难。
首先,我从标准错误上的 gnome-keyring 收到“警告”。这是由于我的安装有问题,但我们当然不应该因为这样的事情而挂断电话。所以我只是忽略了这个警告。可能这很 hacky,但现在我认为如果应该报告问题,我们可以接受添加这样的解决方法。
然后我遇到了 shell 要求我(再次在 stderr 上)输入我的 SSH 密码的问题。这也是我在特定计算机上安装的问题,但如果用户更喜欢亲自输入密码,我们应该接受。所以我必须处理这种情况。
所以在冗长的介绍之后,这个问题相当简洁:
如果我从 Python 到 subprocess.Popen 运行像 git fetch 这样的 shell 命令,并且这个 shell 程序要求用户反馈,我如何从 Python 与它进行交互?
基本上我想向用户显示标准错误输出并允许他输入密码。 (然后当然实现一个选项来将此密码存储在应用程序中。)
【问题讨论】:
标签: python git shell ssh pyqt4