1

我有以下代码:

# 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

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

4

2 回答 2

1

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

以下解决方法为我修复了它:

  p4 = P4.P4(cwd=os.getcwd())
于 2019-05-15T15:45:10.210 回答
0

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

于 2012-04-27T20:29:44.680 回答