由于返回代码为 -1 而预期为 0,因此任务失败 - Bamboo
Posted
技术标签:
【中文标题】由于返回代码为 -1 而预期为 0,因此任务失败 - Bamboo【英文标题】:Failing task since return code was -1 while expected 0 - Bamboo 【发布时间】:2019-08-01 02:17:26 【问题描述】:我在 Bitbucket Repo 中有一个简单的 hello world python 脚本。我已将我的 Bamboo 和 Bitbucket 与具有两个任务的 Default job
相关联:
-
源代码签出
脚本
当我使用Inline
的脚本运行计划并输入python hello_world.py
时,它工作正常并在logs
中打印出“hello world”。
但是当我使用脚本作为file
运行计划并将文件名指定为“hello_world.py”时。构建失败并在日志中显示以下内容:
Failing task since return code of [/var/lib/ci/xml-data/build-dir/ABCD-BAM-JOB1/hello_world.py] was -1 while expected 0
在 GNU linux 中运行的竹子。
我的脚本
#! /usr/bin python
print('Hello World')
脚本任务配置:
编辑 1
解释器有三个选项
-
壳牌
windows powershell
/bin/sh 或 cmd.exe
【问题讨论】:
在脚本配置窗格中,“解释器”还有哪些其他选项? 嗨@brentertainer。我已经在问题中进行了编辑。 我很困惑。壳牌似乎是正确的方法。我注意到的另一件事是,在您的帖子中,#!
和 /usr/bin/python
之间还有一个空格。也许确保当您从我的回答中尝试时,您不包括该空间。如果不是这样,我就无所适从了。
@brentertainer 是的,我也删除了空间。好的谢谢你的帮助。我会看看我能做什么。
【参考方案1】:
找到了。这是因为权限。
如果有人因为您在公司设置中而遇到无法访问终端的相同问题。只是做:
创建一个脚本任务并写内联,chmod XXX filename
。
创建另一个脚本任务并在那里调用文件。
这应该会更改权限。请注意,一旦构建完成,权限就会变回。
【讨论】:
【参考方案2】:您应该将'shebang' 行更改为#!/usr/bin/python
。现在,您的系统可能正在尝试使用/usr/bin
执行它,这是一个目录,而不是可执行文件。
有些人会争辩说#!/usr/bin/env python
或#!/usr/bin/env python3
这样的东西更健壮。这实际上取决于您的系统是如何配置的。
【讨论】:
谢谢。以上都不起作用!抛出相同的错误。我的系统有/usr/bin
它说env
不是目录,python
和python2.7
也不是目录。所以这就是我使用#! /usr/bin python
的原因。不知道为什么这些都不起作用。
是的,您的系统有一个/usr/bin
,它是一个目录,而不是可执行文件。 /usr/bin
和 python
之间有一个空格。这是不正确的。您应该指定完整路径/usr/bin/python
,其中空格替换为斜线。
如果您的系统没有/usr/bin/python
,您应该可以通过从命令行执行which python
来定位您的python。
好的,which python
给了我/usr/bin/python
。我试过#!/usr/bin/python
还是不行:(以上是关于由于返回代码为 -1 而预期为 0,因此任务失败 - Bamboo的主要内容,如果未能解决你的问题,请参考以下文章
为什么TypeHverter为ushort类型返回的FormatException引用Int16?