我正在编写Python脚本并在Makefile中执行它们。该Python脚本用于在一个管道中处理数据。我希望每次更改Python脚本时,Makefile都能执行这个脚本。
有人知道如何实现吗?
这并不是很详细的信息,所以这个答案有点模糊。Makefile 的基本原则是为每个目标列出依赖项;在这种情况下,您的目标(我们称之为 foo)依赖于您的 Python 脚本(我们称之为 do-foo.py):
foo: do-foo.py
python do-foo.py > foo
现在,只要do-foo.py发生更改(当然,前提是你调用make),foo就会被重新运行。
假如需要执行的脚本没有产生有用的输出文件作为目标,可以使用一个虚拟目标:
scripts=a.py b.py c.py
checkfile=.pipeline_up_to_date
$(checkfile): $(scripts)
touch $(checkfile)
echo "Launching some commands now."
default: $(checkfile)
python -m compileall
的调用来定义字节码编译为目标,以生成目标pyc/pyo
文件。 - amcgregor