问题标签 [p4python]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 尝试导入 P4 时没有名为 P4API 的模块
我正在尝试将 Perforce 与 python 一起使用。当我这样做时:
我得到的错误信息是:
尝试查看不同的答案,但都没有解决我的问题...似乎 P4 的代码管理非常混乱,模块名称不断变化...有人请告诉我 p4 的 python api 发生了什么以及如何安装它们?
顺便说一句,我使用的是 Windows 10 64 位,谢谢!
python - 文件不在客户端
自从我开始实现工作区意识以来,我在 P4Python 上遇到了一个非常奇怪的问题。
情况如下:
我有一个“P4Commands”模块,它继承了 P4 并在__init__()
然后,我分别有以下课程:
- P4用户
- P4工作区
- P4更改列表
P4Commands 模块继承了 P4 并调用其父级的“运行”方法,同时还注入了一些我实现的自定义缓存以加速大量调用。run 方法被这样调用:
然后将其记录并返回。
当我对文件调用操作时,我首先通过 P4User 确定文件所在的工作区。然后,我对找到匹配的工作区实例执行以下操作:
其中 FUNCS 是 P4Commands 模块实例。
我遇到的问题是,对于一个在我调用fstat时返回信息的文件,只有当我调用“edit”命令时,才会得到“file (s) not on client”作为错误。其他所有命令(add、fstat、where 等)似乎都可以正常工作。这只发生在编辑命令上。
奇怪的是,当我使用完全相同的参数但在工作区上下文管理器之外(直接在 P4User 模块上)运行该方法时,我没有收到错误。
它变得更奇怪:我尝试禁用上下文管理器,仍然没有乐趣。
更奇怪的是,在阅读本文时,您可能会想“哦,客户端设置不正确”。我尝试记录客户端工作区,并且它被正确设置和取消设置。就像我说的,所有其他命令都可以工作,只是不能编辑。
唯一剩下的情况是多个 P4 模块实例的连接受到干扰。我尝试将 P4Commands 设为静态全局,每个模块仅共享一个实例。那也没有奏效。
我尝试了各种方法,但在这一点上我有点卡住了。有没有人知道如何解决这个问题?
python - 使用 p4python 提交时出错
我第一次使用 p4python,遇到了一个问题,我无法将我的更改提交到 perforce 服务器。我能够连接到服务器并打开文件进行编辑。
执行 p4_run_submit(change_spec) 之前的 change_spec 对象(见下文)看起来不错,但它仍然抱怨没有要提交的文件。任何指针???
python - 我想通过我的 python 脚本从 perforce 组中删除用户
我从 perforce 手册中得到的这个命令:
如何使用方法 p4.run() 在我的脚本中使用此命令
python - 如何通过python脚本检查用户是否存在于perforce中
我想制作脚本以从 perforce 中删除终止的用户,但首先必须检查用户是否存在于 perforce 中。我在 python 脚本中尝试了以下命令,但没有奏效。
perforce 中是否有任何命令或以任何方式在我的脚本中使用上述命令。
perforce - p4python 协调和 fetch_change
我正在尝试将 p4python 的 run_reconcile() 与我从 fetch_change() 获得的更改列表结合使用。代码是这样的:
但是,我收到错误:
perforce - 如何在 p4python 中使用 p4tickets
有大量使用您的用户/密码作为凭据以使用 p4python 连接到 p4 服务器的示例,但很少描述如何使用 p4ticket。目前还不清楚如何将 p4tickets 文件与 p4python 一起使用。
python - p4python run describe 没有返回列表
对于某些更改列表,这工作得非常好 p4.run 正在返回列表,我能够提取更改列表文件及其修订号。
但有时 p4.run 没有返回正确的列表而是返回字符串,我无法提取更改列表文件及其修订号并给出以下错误
depotfiles = result[0]["depotFile"] TypeError: 字符串索引必须是整数
P4 或我的代码是否有问题。
python - P4 python连接断开SSL错误
我已经在使用 P4V 客户端,一切都很好,没有连接错误。
错误: 当我尝试从 Python 执行 p4 命令时出现一些 SSL 错误。而且是随机的,如果我重新运行脚本,每次都不会抛出错误
从客户端,输出是:
SSL 接收失败。\n读取: 操作成功: WSAECONNRESET
从服务器端日志,我得到:
来自 90.XX.XX.93:53929 的连接中断。SSL 接收失败。读取:对等方重置连接:对等方重置连接
在 le P4 Connection with 之后p4.connect()
,我运行一个p4.run_trust()
命令,结果似乎还可以
信任已经建立
这个错误是在做一个p4 fetch
, 的p4 edit myfile
配置
我正在从运行 P4V 客户端的同一台计算机上启动我的 python 脚本。我正在使用相同的配置(用户、工作区、url+port > ssl:p4.our-url.domain:1666)。无论是否启动 P4V 客户端,都会发生 SSL 错误。SSL 证书是在 Perforce Server 安装和配置期间生成的。我们的子域 p4.our-domain 后面没有 apache 服务器,所以我无法使用在线 SSL 检查器测试 SSL 证书(我的网络知识在那里达到了极限)
当我这样做时,p4 info
有一个“对等地址”,基本上是我的 IP 和一个随机生成的端口(53929)。这个端口是什么?我需要设置固定端口并重定向到运行脚本的计算机吗?
您有任何想法该错误来自哪里吗?这是一个糟糕的服务器配置吗(奇怪的原因是办公室里的每个 p4v 客户端都可以工作)。我是否需要为 P4Python 脚本的所有用户建立和分发新证书?
Python 3.5.4
PyOpenssl 18.0.0
P4Python 2017.2.1615960
非常感谢您的任何建议。
山姆斯塔福德建议的答案
山姆是对的,看来我超时了。我在脚本启动时打开 P4 连接并连接到服务器,然后在使用 p4 fetch/add/submit 之前启动处理以生成文件。这是在与服务器断开连接时重新连接的解决方法
如果您想保持连接打开,这很有效。我想避免超时的最好P4.connect()
方法是在 any 之前调用方法P4.run_*method*()
并在之后关闭它。而不是等待超时重新启动连接。
python - P4Python 运行方法不适用于空文件夹
我想在 Perforce 仓库中搜索文件。我从 python 脚本执行此操作并使用p4python
library 命令:
只要myfolder
包含一些文件,它就可以正常工作。我得到一个 pythonlist
作为返回值。但是当程序中没有文件时myfolder
停止运行并且没有错误信息显示。我的目标是得到一个空的 python list
,这样我就可以看到这个文件夹不包含任何文件。
有人有什么想法吗?p4
我在文件文档和 StackOverflow 上找不到信息。