将SCONS工具集成到Python代码中

发布时间:2019-08-26 07:20:45编辑:auto阅读(2210)

        SCONS是Python的自动智能结构化编译工具,将来或许能代替Make。

        在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)

    然后main(args_)通过调用__exec_main(args_,Parser,Values),将参数传给__exec_main,在__exec_main中再将sys.argv[1:]替换为args.split().

    修改完Main.py之后,执行如下,实现替换二进制源文件(Main.pyc):

    >>import py_compile

    >>py_compile(r'C:\\Python27\\Scons-2.3.1\\Scons\\Script\\Main.py')

     

    使用如下代码测试:

    >>import os

    >>import sys

    >>sys.path=[os.path.join(sys.prefix,'Scons-2.3.1')]+sys.path

    >>import Scons.Script

    >>Scons.Script.main('.')

    Scons工具正常使用。

     

           

关键字