我正在编写python脚本并在Makefile中执行它们。 python脚本用于处理管道中的数据。我希望Makefile在每次更改我的python脚本时执行脚本。
有没有人知道如何做到这一点?
答案 0 :(得分:17)
这不是很多信息,所以这个答案有点模糊。 Makefile的基本原则是列出每个目标的依赖关系;在这种情况下,你的目标(让我们称之为foo)取决于你的python脚本(让我们称之为do-foo.py):
foo: do-foo.py
python do-foo.py > foo
现在foo将在do-foo.py更改时重新运行(当然,前提是你调用make)。
答案 1 :(得分:3)
如果需要运行的脚本没有生成任何可用作目标的有用输出文件,您可以使用虚拟目标:
scripts=a.py b.py c.py
checkfile=.pipeline_up_to_date
$(checkfile): $(scripts)
touch $(checkfile)
echo "Launching some commands now."
default: $(checkfile)
答案 2 :(得分:0)
如果您希望在保存后立即自动“生成”Makefile,pyinotify
(inotify
的包装器)可能是Linux下唯一的可能性。它在内核处注册以检测FS更改并回调您的函数。
请参阅我关于该主题的previous post。