有人可以帮我找到一种方法从Makefile中的python脚本中捕获返回值。我有一个场景,源代码通过Makefile构建,当python脚本重新运行失败时应该抛出构建错误
myMakefile.mak
python mySample.py <arg1> <arg2>
//在这里调用python脚本,如何获取脚本的返回值?
mySample.py
SUCCESS 0
FAIL 1
if(true)
exit(SUCCESS)
else:
exit(FAIL)
提前致谢。
答案 0 :(得分:1)
如果你的python脚本以非零代码退出,make
将检测到这一点并告诉你发生了错误。所以你不需要再做任何事了。
示例,如果我有一个程序foo.py
执行此操作:
print 'running foo'
exit(1)
这样Makefile
:
foo:
python foo.py
我运行make foo
,我得到输出:
python foo.py
运行foo
make:*** [foo]错误1
所以它检测到错误。
另一方面,如果要做的是在Makefile中记录命令的返回值,可以使用$?
变量,该变量存储命令的最后返回值。
有几点需要注意:
$$?
示例:
build:
python mySample.py ; echo $$? > output
运行make
后,您将拥有一个名为output
的文件,其中包含mySample.py
的返回值。
答案 1 :(得分:0)
执行此操作的一种方法是让您的python脚本将要在makefile中使用的值写入输出文件。然后你的makefile可以读取该中间文件的值。
示例:
with open("intermediary.tmp", "wb") as h:
h.write(SUCCESS)