TensorFlow自定义目标检测器编译报错:无法打开maskApi.c文件求助
看起来你在Windows上编译TensorFlow Object Detection API的pycocotools时踩了坑,这个错误的核心是编译器找不到../common/maskApi.c文件,我帮你梳理几个靠谱的解决方向:
1. 先检查目录结构是否完整
错误里的路径../common/maskApi.c是相对于你当前运行命令的object_detection目录的上一级(也就是models/research目录)。你需要确认:
models/research目录下是否存在common文件夹- 这个
common文件夹里是否有maskApi.c和maskApi.h两个文件
如果这两个文件缺失,大概率是你克隆或下载TensorFlow Models仓库时没拿到完整内容。解决办法:
- 重新用Git克隆仓库:
git clone https://github.com/tensorflow/models.git(别用下载ZIP包的方式,容易漏目录) - 或者直接从TensorFlow Models的GitHub仓库里单独下载
common目录的内容,放到models/research目录下
2. 换用Windows专属的预编译pycocotools(最省心)
手动编译pycocotools在Windows上本来就容易出各种路径和编译工具的问题,推荐直接安装专为Windows打包的版本,跳过手动编译步骤:
pip uninstall pycocotools # 先卸载已有的版本(如果装过) pip install pycocotools-windows
安装完成后,再回到models/research/object_detection目录运行python setup.py build_ext --inplace,应该就能正常执行了。
3. 确保你在正确的目录下编译
如果你坚持要手动编译,得确认自己在正确的路径下运行命令:
pycocotools的setup.py是放在models/research/pycocotools目录下的,你应该进入这个目录再执行python setup.py build_ext --inplace,而不是在object_detection目录下运行——后者会导致路径解析错误,找不到上级的common文件夹。
另外补充一点:你用的Python3.7和VS2019 Build Tools是兼容的,但要确保你安装VS Build Tools时勾选了C++构建工具组件,不然编译器会缺少必要的依赖。
内容的提问来源于stack exchange,提问作者V.Singh

