Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
可以在Makefile文件中读写变量赋值的Python库?_Python_Makefile - Fatal编程技术网

可以在Makefile文件中读写变量赋值的Python库?

可以在Makefile文件中读写变量赋值的Python库?,python,makefile,Python,Makefile,我正在寻找一种解决方案,允许我从Python内部修改Makefile文件 我不需要任何特殊的功能,通常我只需要更改变量,比如:SOMETHING:=value,但我更希望能够使用现有的库,而不是实现我自己的、有缺陷的解析器。没有听说过这种面向Makefile的Python库,但是如果您只需要简单的替换,例如SOMETHING:=[SOMETHING\u placeholder],那么您可以加载模板文件,用您的值替换占位符,然后将其写回磁盘,并将其交给make 或者您可以使用模板引擎,例如,但这将

我正在寻找一种解决方案,允许我从Python内部修改
Makefile
文件


我不需要任何特殊的功能,通常我只需要更改变量,比如:
SOMETHING:=value
,但我更希望能够使用现有的库,而不是实现我自己的、有缺陷的解析器。

没有听说过这种面向Makefile的Python库,但是如果您只需要简单的替换,例如
SOMETHING:=[SOMETHING\u placeholder]
,那么您可以加载模板文件,用您的值替换占位符,然后将其写回磁盘,并将其交给
make


或者您可以使用模板引擎,例如,但这将是应用程序的另一个依赖项。

如果您想在Python中执行操作,我建议您不要使用Makefiles

改用
waf
scons
。它们是用Python编写的用于替换Makefiles的构建工具。 我宁愿使用
waf
而不是
scons
,因为它速度更快,而且可以与新的
Python
版本一起使用(一些操作系统项目,如
ardour
也切换到了它)

下面是这两种方法的比较(以及其他方法,如CMake、Ant):

您真正想解决的问题是什么?也许我们可以建议一个更好的替代方法来解析和修改源代码。是的,你真的不想尝试用编程的方式解析makefile。Timo建议的简单模板是最好的选择……或者只是在环境或命令行中传入值。