我有以下代码:
# 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设置?
答案 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说它会显示相应的环境变量,但是你不能这样设置它们。在那种情况下,我不知道。