【问题标题】:Why does P4Python not recognize P4CONFIG setting?为什么 P4Python 无法识别 P4CONFIG 设置?
【发布时间】:2012-04-27 20:08:36
【问题描述】:

我有以下代码:

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

【问题讨论】:

    标签: python linux perforce p4python


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 是的。考虑到 os.environ['P4CONFIG'] 说 P4CONFIG 已设置,为什么操作系统很重要?
      • 因为在其他操作系统的 Perforce 上不会首先查看环境变量。它查看自己的副本(例如,在 Windows 的注册表中)。这就是操作系统很重要的原因。 [编辑:仔细阅读手册页后,会检查环境变量]
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-13
      • 2021-04-27
      • 2020-01-27
      • 1970-01-01
      相关资源
      最近更新 更多