我有以下代码:
# 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())