我正在尝试运行Python工作。我创建了以下文件夹:
C:\ Users \ herod \ jenkins_ws \ workspace \ window_testing
并添加了脚本“ testing.py”。
该脚本非常简单:
if __name__ == "__main__":
print "hellow world !"
f = open('test_log.txt','w')
f.write("hello\n")
f.close
但是从Jenkins运行它时出现以下错误(如果我从命令行运行它会起作用):
>Building remotely on windows1 (widndows_genereal) in workspace C:\Users\herod\jenkins_ws\workspace\window_testing
[window_testing] $ python C:\windows\TEMP\hudson5234791200924972506.py
The system cannot find the file specified
FATAL: command execution failed
java.io.IOException: Cannot run program "python" (in directory "C:\Users\herod\jenkins_ws\workspace\window_testing"): CreateProcess error=2, The system cannot find the file specified
at java.lang.ProcessBuilder.start(Unknown Source)
at hudson.Proc$LocalProc.<init>(Proc.java:244)
at hudson.Proc$LocalProc.<init>(Proc.java:216)
at hudson.Launcher$LocalLauncher.launch(Launcher.java:775)
at hudson.Launcher$ProcStarter.start(Launcher.java:355)
at hudson.Launcher$RemoteLaunchCallable.call(Launcher.java:1024)
at hudson.Launcher$RemoteLaunchCallable.call(Launcher.java:991)
我究竟做错了什么 ?
这是我尝试过的:
在构建部分的作业配置中,我选择“执行python脚本”,然后输入testing.py文件-不起作用。
我也尝试输入python testing.py和python.exe testing.py-不起作用。
尝试在“脚本”编辑文本中编写python脚本-不起作用。
如果我将执行类型从python更改为批处理文件,则表明它可以通过,但实际上它没有运行python脚本。
update2 :( 尝试使用Technext解决方案后)出现下一个错误:
Building remotely on windows1 (widndows_genereal) in workspace C:\Users\herod\jenkins_ws\workspace\window_testing
[window_testing] $ python C:\Users\herod\AppData\Local\Temp\hudson4767788636447260218.py
Traceback (most recent call last):
File "C:\Users\herod\AppData\Local\Temp\hudson4767788636447260218.py", line 1, in <module>
testing.py
NameError: name 'testing' is not defined
Build step 'Execute Python script' marked build as failure
Finished: FAILURE
由于python脚本在命令行上运行良好,但是在通过Jenkins运行时出现问题,这很可能意味着与Jenkins一起运行的 用户_在查找Python可执行文件(即python.exe)时遇到了问题。如果您有可能(并且可行)更改Jenkins用户,请使用此处描述的过程进行更改。 _使它与您在命令提示符下成功运行程序的用户身份相同 。
问题内容: 好的,所以我有一个通过ProcessBuilder运行的python脚本。一切正常。我遇到的问题是,每当我将参数传递到python脚本时,python脚本都会以响应。但是,如果我采用确切的命令并将其复制并粘贴到命令提示符下,则它运行得很好。有什么帮助吗?这是我现在所拥有的一般想法: 问题答案: 将两个单独的参数传递给,而不是串联和: 否则,要执行的程序将看到无法识别的单个参数。
我使用Jenkins在docker容器中使用以下命令 码头工人拉詹金斯/詹金斯 docker run-p8080:8080--name=jenkins master jenkins/jenkins 获取此错误 calc.py/var/jenkins_home/workspace/pythoncalculator@tmp/耐用-b7e99e01/脚本。sh:1:/var/jenkins\u home
问题内容: 我能够运行以下shell脚本,但无法从Jenkins管道代码运行。 尝试1。 输出: 尝试2: 尝试过sh“”“ 输出 : 美元符号后的非法字符串体字符;解决方案:要么转义文字美元符号,要么将值表达式括起来 有人能帮我吗? 问题答案: 这应该工作。 您还需要在调用下面的新subshell时转义$
问题内容: 我是詹金斯的新手,需要帮助。 我有4个Shell脚本:test1.sh,test2.sh,test3.sh和test4.sh 我希望test2.sh仅在test1.sh成功运行时运行,而test4.sh仅在test3.sh成功运行时运行。我还希望test1.sh和test3.sh并行运行。 我如何在詹金斯实现呢? 我正在使用“使用ssh在远程主机上执行shell脚本”和“有条件的步骤(
我创建了一个简单的测试脚本。我可以使用,但当我尝试sudo时/测验sh我收到一个错误。 测试内容。上海: 文件权限: 运行脚本: 使用sudo运行脚本: 为什么会发生这种情况?
问题内容: 我想从C调用Python脚本,并传递脚本中所需的一些参数。 我要使用的脚本是mrsync或多播远程同步。我通过调用以下命令从命令行进行了工作: -m是包含目标ip地址的列表。-s是包含要同步的文件的目录。-t是目标计算机上将放置文件的目录。 到目前为止,通过使用以下C程序,我设法运行了没有参数的Python脚本: 这很好。但是,我找不到如何将这些参数传递给方法的方法。 问题答案: 似乎