获取有关当前hg存储库的信息

时间:2015-10-16 08:45:08

标签: python python-3.x mercurial pydev

使用subprocess.Popen(..)

时遇到问题

此命令:

HG_REV = subprocess.Popen(["hg", "log", "-l", "1", "../"], stdout=subprocess.PIPE).communicate()[0]

给我以下错误:

  File "/usr/lib/python3.4/site.py", line 182
    file=sys.stderr)
        ^
SyntaxError: invalid syntax

但是这个工作正常:

HG_REV = subprocess.Popen(['ls','-la'], stdout=subprocess.PIPE).communicate()[0]

有人能解释一下,为什么会出现这个错误以及如何解决它?

参考这篇文章:Mercurial scripting with python

==================更新1 =========================== =================== 我发现它与pydev有关,我的eclipse中的任何东西都可能改变了环境变量。我很确定,因为在linux shell上的文件(python3.4 test.py)中运行上面的命令工作了!!

以下是更多信息:

  1. 虚拟机上的Ubuntu 14.04.3
  2. Eclipse Mars
  3. 的PyDev
  4. python3.4是当前配置(当我切换到python2.7时 它起作用了)
  5. (我也尝试过hglib,并且在运行时会发生完全相同的“错误” client = hglib.open(my_mercurial_repo)因为open也在使用subprocess.Popen(..)

    ==================更新2 =========================== =================== 将PYTHONPATH设置为/usr/bin/python3.4代码有效!!但这种行为对我来说似乎很奇怪。在虚拟机上使用python3.4的常用方法是什么?问题仍未解决。

0 个答案:

没有答案