【发布时间】:2013-12-19 13:08:39
【问题描述】:
>>> subprocess.check_output(['svn', '--version', '--quiet'], shell=True)
'\x0c1.6.16\r\n'
>>> subprocess.check_output(['svn', '--version', '--quiet'])
'1.6.16\r\n'
在 Windows、Python 2.7 上,当 shell=True 传递给 subprocess.check_output 时,我得到一个额外的 \x0c 字符。这不是预期的行为,因为它破坏了来自 depot_tools 的 Chromium 的 gclient.py。它尝试检查 svn 版本是否最低 1.4,并且对 0x0c 感到惊讶。然后一切都爆炸了。
我不知道为什么会发生这种情况以及这意味着什么。我该如何解决这个问题?我不想从破解 gclient.py 开始,因为它适用于其他所有人。谷歌搜索这个问题没有得到任何结果。
【问题讨论】:
-
请再次运行
subprocess.check_output(['svn', '--version', '--quiet'], shell=True)。它应该提出CalledProcessError。你的意思是subprocess.check_output('svn --version --quiet', shell=True)? -
我怀疑你将不得不临时修补它并向模块作者提出问题,或者你的意思是它适用于所有使用 Windows 和 Python2.7 的人?
-
间接级别?在使用之前从一开始就去除“空白”?顺便说一句,如果我在 Windows 7 上使用针对 git 的 python 2.7 而不是 svn 执行此操作,我不会得到额外的字符。
-
@doctorlove 我试图从我的控制台调用 git,但它根本不起作用。我的 cmd 有问题。我最后尝试了一些 hacky cmd 教程,但我没有注意到它现在有问题。我不经常使用它,其他程序也有效......我会试着弄清楚。谢谢大家的cmets。
-
对不起,如果我听起来很粗鲁,当你说“它”不起作用时,我误解了。很高兴您解决了问题。
标签: python windows svn subprocess chromium