我有以下代码:

# 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设置?

最佳答案

我也遇到过同样的问题。这似乎是linux特有的p4python中的一个bug。
p4类正在初始化,当前工作目录设置为“/”,而不是实际的工作目录。这将阻止p4查找.p4config文件。
下面的解决方法帮我解决了这个问题:

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

09-26 06:05