为什么P4Python不能识别P4CONFIG设置?

时间:2012-04-27 20:08:36

标签: python linux perforce p4python

我有以下代码:

# script0.py
def main():
    p4 = p4python.P4.P4()
    p4.connect()
    print os.environ['P4CONFIG']
    print p4.p4config_file
    p4.disconnect()

通过以下方式调用:

# script0_test.py
subprocess.check_call(['script0.py'])

正在输出:

.p4config
noconfig

当从命令行调用script0.py或使用subprocess.check_call(shell = True)时,它会输出正确的信息:

.p4config
/home/nyap/proj/.p4config

为什么当shell = False时,p4对象无法识别P4CONFIG设置?

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。它似乎是特定于Linux的P4Python中的错误。 正在初始化P4类,将当前工作目录设置为“ /”,而不是实际工作目录。然后,这将阻止P4查找.p4config文件。

以下变通办法为我解决了该问题:

  p4 = P4.P4(cwd=os.getcwd())

答案 1 :(得分:0)

从命令行,p4 set为P4CONFIG显示了什么?如果不存在,则需要p4 set P4CONFIG=".p4config"(在Windows或OS X上)。如果你的p4 set输出已经列出了P4CONFIG,那么我不知道......如果你在Linux上,p4 set manpage说它会显示相应的环境变量,但是你不能这样设置它们。在那种情况下,我不知道。