【问题标题】:Jenkins won't execute python subprocess詹金斯不会执行python子进程
【发布时间】:2018-07-09 17:04:02
【问题描述】:

我看到了一些解决此问题的建议,但没有一个对我有用。

我在运行 Windows10 的笔记本电脑上本地安装了 Jenkins。我已经缩小了范围,它确实是我的 python 脚本中调用 subprocess.run 方法的行。 Python 脚本一直执行到那时,所以我知道脚本是从 Jenkins 作业中调用的。

这似乎是其他帖子中建议的权限错误。但是,我不确定我还能做什么。我以管理员身份登录 Windows,所以这不是问题。

Jenkins 作业以 Jenkins 管理员用户身份运行,所以我不确定我还能做什么?

控制台输出:

17:39:21 Started by user admin
17:39:21 Building in workspace C:\Program Files (x86)\Jenkins\workspace\loadrunner_test
17:39:21 [loadrunner_test] $ cmd /c call C:\WINDOWS\TEMP\jenkins2453008242502676618.bat
17:39:21 
17:39:21 C:\Program Files (x86)\Jenkins\workspace\loadrunner_test>cmd /C C:\Python365\python.exe C:\PythonProjects\cicd_loadrunner\cicd_loadrunner.py 
17:44:42 Error:  <class 'subprocess.TimeoutExpired'>
17:44:42 
17:44:42 C:\Program Files (x86)\Jenkins\workspace\loadrunner_test>exit -1 
17:44:42 Build step 'Execute Windows batch command' marked build as failure
17:44:42 Finished: FAILURE

当它尝试执行 subprocess.run 方法时,它只是挂起,然后最终超时。

当我使用 windows 命令提示符手动运行脚本时,它按预期工作。

干杯。

【问题讨论】:

  • 我认为您需要授予 Jenkins 运行 Python 的权限...因为 jenkins 创建了一个名为 jenkins 的用户
  • 我认为你是对的。知道我该怎么做吗?有人建议将 *.boto 文件移动到根目录,但我什至看不到 *.boto 文件(Windows 安装)
  • 很高兴你让它工作 :) 我没有在 Python 上工作太多所以 *.boto 文件我不知道那是什么......:P
  • 谢谢伙计。是的,我也不知道 .boto 文件是什么 :) 认为它与 AWS 相关,所以用那个树叫错了树。干杯。

标签: python jenkins subprocess


【解决方案1】:

终于到了。我必须创建一个具有本地管理员权限的新 Windows 用户,我称之为 JenkinsUser。然后我进入 Jenkins.exe 服务并使用我的新用户 JenkinsUser 运行 Jenkins。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    相关资源
    最近更新 更多