windows10编译 Pycocotools出错解决方案
来源:互联网 发布:程序员逻辑分析面试题 编辑:程序博客网 时间:2024/06/05 14:25
本文是 Pycocotools 编译踩坑笔记。如果您的环境是 Linux,那么恭喜您,获取 COCO 源码,简单一个 make 即可,本文可以忽略了;然而,如果是 Windows,满满都是坑,生踩过来,笔者也是醉了。
版权声明:本文为 frendy 原创文章,可以随意转载,但请务必在明确位置注明出处。
名词解释
- COCO 是什么?
Microsoft COCO 是一个标注过的图片数据集,可用以目标检测、分割和描述生成等。Yep, it's all about MS COCO API...
- Pycocotools 是什么?
顾名思义,python api tools of coco...
实操走起
- 获取源码
git clone https://github.com/pdollar/coco.git
- 编译
cd coco/PythonAPI
# install pycocotools locallypython setup.py build_ext --inplace# install pycocotools to the Python site-packagespython setup.py build_ext install
嗯,如果顺利完成,恭喜您大踏步迈过,来来握个手!嗯,如果掉坑了也不怕,慢慢解决,希望笔者下面的踩坑笔记可以帮到您吧。
各种踩坑
这里笔者主要遇到的有两个问题:
1. Unable to find vcvarsall.bat
其实解决办法也挺简单,配置好 Visual C++ 编译环境即可。笔者这里安装的 VS 2015,于是找到安装包 vs_Community.exe,安装添加 C++ 相关即可。需要注意的是环境变量,如下所示,请确保与本机 VS 版本对应的工具目录配置,这里是
VS140COMNTOOLS。如果问题依旧,可尝试添加 VS90COMNTOOLS 指向 VS140COMNTOOLS。
那么,为什么是 VS90COMNTOOLS?
我们来看看编译过程中是如何寻找 vcvarsall.bat 的吧。在文件 ..\Anaconda3\Lib\distutils\msvc9compiler.py 中定位到函数
find_vcvarsall()。如下图示,如果都失败了,最后会找到环境变量 VS90COMNTOOLS。嗯,bingo:2. cl: 命令行 error D8021 :无效的数值参数“/Wno-cpp” 和 cl: 命令行 error D8021 :无效的数值参数“/Wno-unused-function”
纠结了很久,Github 上有类似的问题 #51,然而 COCO 的作者 pdollar 已明确答复不会支持 Windows 哎...踩到这里,笔者也是不想轻易放弃,于是暴力删掉吧,把参数 Wno-cpp 和 Wno-unused-function 都删掉删掉,如下图所示:
嗯,然后编译通过!是否能正常使用呢?我们在 image caption 的 demo 里试试水,如下图示,可用可用!嗯,什么 COCO,什么 Pycocotools,都是前戏,笔者想实现的是 image caption,后续有进展单独码一篇相关的文字吧。
作者:_frendy
链接:http://www.jianshu.com/p/de455d653301
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
- windows10编译 Pycocotools出错解决方案
- 编译qtopia时出错解决方案
- centos 编译swoole 出错解决方案
- 编译VLC,出错的解决方案之一
- 在Centos x64 编译Poco 出错解决方案
- 编译驱动scull出错后解决方案
- 编译Hadoop 0.22.0 源代码 出错 解决方案
- Sublime Text编译CoffeeScript出错解决方案
- vs2015编译gdal出错及解决方案
- vs2015编译gdal出错及解决方案
- 程序编译出错记录及解决方案
- windows10编译Box2D源文件
- windows10下编译x264
- PHP安装问题:编译安装php5.2.0时出错解决方案
- linux 64位 编译动态库时会出错的解决方案
- Qt构建及编译出错问题及解决方案
- Cocos2d-x 3.2编译生成Android程序出错的解决方案
- Cocos2d-x 3.2编译生成Android程序出错的解决方案
- HTTP_REFERER的用法及伪造
- spring多数据源的处理 mybatis实现跨库查询 实现Myibatis动态sql跨数据库的处理 Spring动态配置多数据源,即在大型应用中对数据进行切分,并且采用多个数据库实例进行管理,这样
- 欢迎使用CSDN-markdown编辑器
- ◆竞赛题目◆◇NOIP2015普及组◇求和
- Linux下部署oracle
- windows10编译 Pycocotools出错解决方案
- Codeforces Round #443 (Div. 2): C. Short Program
- Minimum Inversion Number HDU-1394
- iMindMap思维导图集结令
- CatchSync算法原理及应用
- Codeforces #443 Div.2 C. Short Program 【位操作】
- Webpack配置详解(package.json/webpack.config.js详细配置 )
- 微信 JS-SDK
- 在日常的开发中,我们有时候确实需要跨域的访问,怎么办?