我逐漸遠(yuǎn)離了 Makefile,轉(zhuǎn)而用每個項目特制的 make.py 完成類似的任務(wù)。同時也不希望寫很多命令行參數(shù)解析,因為也比較厭煩了。
所以我現(xiàn)在的選擇多半是用 ipython 的 Shell,通過交互式命令行喚起腳本里特定的函數(shù)來完成任務(wù)。
這個想法的第一個問題就是當(dāng)前目錄需要是一個 python 包,不然 import make 是無效的。為此我需要創(chuàng)建一個空的 __init__.py 文件,看起來有點(diǎn)奇怪。
第二個問題是 import make 這個動作是有緩存的,只要 Shell 不重啟,make.py 的修改不能及時反饋到交互式命令行里。為此我找到了 hotreload 這個庫:
from hotreload import Loader
make = Loader('make.py')
這樣調(diào)用 make 模塊的函數(shù)就是無緩存的了。而且它沒了 import make 這個動作,也不需要奇奇怪怪的 __init__.py 了。
我認(rèn)為這個過程也適用于其他的開發(fā)過程,只是還沒有這樣的體驗。