Python是解决这个问题的合适工具吗?(构建脚本)

18 投票
12 回答
9360 浏览
提问于 2025-04-15 11:16

目前我在用一个Windows批处理文件来构建我的软件。这个批处理文件会做一些事情,比如运行MSBuild、复制文件、创建ZIP文件、运行一些测试、包括子版本号等等。

但是问题是,批处理文件实在不好用。所以我想换成更好的东西。我打算用Python重新写我的构建脚本。这是个聪明的选择吗?那那些构建系统,比如Ant、SCons、Maven、Rake等等,使用它们会不会更好呢?

注意:我并不打算替换我的Visual Studio解决方案/项目文件。我只是想把创建软件发布所需的其他所有步骤都脚本化。

编辑:我有很好的理由要放弃批处理,这不是我问题的重点。我想知道(比如说)SCons相比普通的Python脚本能给我带来什么好处。

12 个回答

7

既然你提到了Python和SCons,我觉得你可以选择SCons。毕竟它是用Python写的。而且,以上提到的任何选项都比自己手动写的构建脚本要好。

9

批处理文件并不是坏东西——它们其实已经从早期简单得不能再简单的命令行时代发展了很久。现在的命令语言可以表达很多东西,只是需要你花点时间去学习。

除非你的构建脚本真的有个无法解决的问题(如果真是这样,那你应该问这个问题,而不是模糊地问“有什么更好的替代方案吗?”:-)),我的建议是继续使用你现在的东西。

如果只是感觉它有点“邪恶”,那并不是我去浪费时间“修复”一些并没有坏的东西的理由。除非换成新东西有明显的好处,否则这都是浪费时间(“不那么邪恶”我觉得并不是一个明显的好处)。

16

对于一个用Python编写的工具,我觉得Paver比SCons更容易管理,也更灵活。与SCons不同,Paver是为了处理那些不需要编译程序的各种任务而设计的,这些任务通常与管理和分发软件项目有关。

撰写回答