将SCONS工具集成到Python代码中

2023-01-31 02:01:32 代码 工具 集成

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

 

       

相关文章