SCONS是Python的自動智能結構化編譯工具,未來或許能代替Make。ide
在Windows或者Linux下,SConstruct文件至關於MakeFile,使用SCONS編譯,需輸入scons.bat(scons),後面帶上編譯選項options(如SConstruct所在的路徑)。觀察scons.bat這個腳本,能夠在其餘Python代碼中,將SCONS工具看成一個函數來調用。這個函數就是Scons.Script.main(),這個main函數將解析命令行中的編譯選項,經過sys.argv[1:]來傳入。因此只需修改這個函數,就能夠以函數的方式調用,不須要經過如Popen等方式在代碼中啓動scons。函數
先找到SCONS安裝的目錄,如C:\\Python27\Scons-2.3.1包,將Scons\Script\Main.py中main()函數聲明中,添加一個傳入參數,變爲:工具
def main(args_):測試
同時將_exec_main(Parser,Values)聲明,也變爲:命令行
__exec_main(args_,Parser,Values)ip
而後main(args_)經過調用__exec_main(args_,Parser,Values),將參數傳給__exec_main,在__exec_main中再將sys.argv[1:]替換爲args.split().it
修改完Main.py以後,執行以下,實現替換二進制源文件(Main.pyc):io
>>import py_compile編譯
>>py_compile(r'C:\\Python27\\Scons-2.3.1\\Scons\\Script\\Main.py')class
使用以下代碼測試:
>>import os
>>import sys
>>sys.path=[os.path.join(sys.prefix,'Scons-2.3.1')]+sys.path
>>import Scons.Script
>>Scons.Script.main('.')
Scons工具正常使用。