用于管理C++项目的Python脚本
Python script for managing C++ project
在我的团队中,我决定使用Python3脚本来管理用C++编写的项目。因此,我使用脚本是为了在一个地方收集项目之上的所有功能。我把它用于:
- 启动make
- 下水试生产
- 编译文档
- 收集统计数据
- 检查编码样式
例如,我调用:./foo.py stat
来收集统计数据。里面有一堆公用设施。我使用sys
和os
对它们进行操作。
我觉得这很好,但我担心这是一种糟糕的做法,最终会变成问题,而且这也是一种不好的品味。
以下是问题:
- 这是一种常见的做法吗
- 如果不是,那为什么
- 什么是最好的解决方案
- 一些附加信息
对我来说,使用python脚本执行这些任务是否是一个好的解决方案似乎是项目特有的,尝试回答这样的问题可能不够。不过,让我试着分类一下。
- 启动make
- 下水试生产
- 编译文档
您应该问问自己,为什么仅仅调用make
、make test
和make docs
是不够的。中间的python层对我来说似乎有些过头了,因为我想不出有哪个场景能增加这么多便利。如果make
调用太复杂(例如,因为必须指定很多参数),我会首先尝试处理Makefile
本身,使其更易于使用。
- 收集统计信息
对我来说很有意义。
- 检查编码样式
"编码风格"意味着很多东西,但当你试图强制执行命名约定、函数长度或代码格式时,我建议你使用clang整洁和clang格式,不要重新发明轮子。这些工具非常强大,可以通过配置文件进行控制,该文件可以作为项目的一部分。如果从python脚本调用这些工具很方便,或者使用python脚本生成compile_commands.json
,对我来说似乎很好
一般来说,不同的任务需要不同的工具,我不会试图围绕这些工具构建一个通用的包装器来创建一个整体的接口,因为你的python脚本会随着时间的推移而增长(版本控制、调试/发布打包……),直到它变得难以管理。更喜欢做一件事的小而简单的脚本(顺便说一句,我不知道你的方法可能是这样)。
要评论你的文章最后的一些问题,
- 这是一种常见的做法吗
用于特定任务的小型脚本,如生成一些回购统计信息:是。一个用于管理构建、发布和文档的大型手写工具:我会说不。
- 如果不是,为什么
像这样的跨平台功能非常难以实现,因为存在无限多的边缘情况。滚动自己的工具可能会消耗太多时间。相反,仔细配置现有工具可能是最有效的策略。另外,如果你使用现有的工具,(新的)开发人员可能会习惯它
- 如何在c++中使用system()来运行包含空格的python脚本
- 如何将真正的字符串从python c-api转换为python脚本
- 在从Qt调用的Python脚本中导入OpenCV崩溃
- 使用 Main() 返回值作为 python 脚本的参数
- 如何制作启动 Python 脚本的 linux 后台进程(在 c 中)
- 从Raspberry Pi / Linux上的Python脚本运行和停止C++程序
- C++ Python 并不总是执行 Python 脚本
- 从C++调用 Python 脚本以持续流式传输数据
- 将数据从 c++ 文件连续发送到 Python 脚本以进行进一步处理
- 错误,在嵌入在C++程序中的 python 脚本中使用 matplotlib 时
- 在使用PyInstaller冻结Python脚本时包含一个C++可执行文件
- 使用 pipe() 和 fdopen() 将数据从 Python 脚本传递到 Windows 中的C++应用程序
- Python 脚本到 c .obj 文件
- 从 c++ 运行 python 脚本时出现问题
- C++ :从C++脚本内部触发存储在我机器上的 python 脚本
- 从 c++ 中运行 python 脚本,找不到模块
- 参数从 Python 脚本传递到 C++ 使用 boost-python
- 无法从Linux,C ++执行"my_script" python脚本"main(filename)"功能;pModule = PyImport_Import(pName);返回空值
- 如何在C ++(qt)代码中使用python脚本?(网页抓取方面)
- 将对象从 python 脚本传递给 c++