將SCONS工具集成到Python代碼中

    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工具正常使用。

相關文章
相關標籤/搜索