参考:
https://blog.csdn.net/chixia1785/article/details/80040172
https://blog.csdn.net/gxiaoyaya/article/details/78363391
Mask_RCNN用COCO数据集训练需要用到pycocotools这个第三方库,在命令行用 pip install pycocotools会报错
安装pycocotools
1、获取源码:
(base) G:>git clone https://github.com/pdollar/coco.git
2、安装
(base) G:>cd coco/PythonAPI
(base) G:cocoPythonAPI>python setup.py build_ext --inplace
发现报错,主要内容为:
cl: 命令行 error D8021 :无效的数值参数“/Wno-cpp”
error: command 'H:\VisualStudio2017\install\VC\Tools\MSVC\14.15.26726\bin\HostX86\x64\cl.exe' failed with exit status 2
(base) G:>pip install pycocotools
Collecting pycocotools
Downloading https://files.pythonhosted.org/packages/96/84/9a07b1095fd8555ba3f3d519517c8743c2554a245f9476e5e39869f948d2/pycocotools-2.0.0.tar.gz (1.5MB)
100% |████████████████████████████████| 1.5MB 3.7MB/s
Building wheels for collected packages: pycocotools
Running setup.py bdist_wheel for pycocotools ... error
Complete output from command f:anaconda3python.exe -u -c "import setuptools, tokenize;__file__='C:\Users\new\AppData\Local\Temp\pip-install-dhenr2zw\pycocotools\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('
', '
');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d C:Users
ewAppDataLocalTemppip-wheel-_9g45pb4 --python-tag cp36:
running bdist_wheel
running build
running build_py
creating build
creating buildlib.win-amd64-3.6
creating buildlib.win-amd64-3.6pycocotools
copying pycocotoolscoco.py -> buildlib.win-amd64-3.6pycocotools
copying pycocotoolscocoeval.py -> buildlib.win-amd64-3.6pycocotools
copying pycocotoolsmask.py -> buildlib.win-amd64-3.6pycocotools
copying pycocotools\__init__.py -> buildlib.win-amd64-3.6pycocotools
running build_ext
building 'pycocotools._mask' extension
creating build emp.win-amd64-3.6
creating build emp.win-amd64-3.6Release
creating build emp.win-amd64-3.6Releasepycocotools
creating build emp.win-amd64-3.6Releasecommon
H:VisualStudio2017installVCToolsMSVC14.15.26726inHostX86x64cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -If:anaconda3libsite-packages
umpycoreinclude -Icommon -If:anaconda3include -If:anaconda3include -IH:VisualStudio2017installVCToolsMSVC14.15.26726ATLMFCinclude -IH:VisualStudio2017installVCToolsMSVC14.15.26726include "-IC:Program Files (x86)Windows KitsNETFXSDK4.6.1includeum" "-IC:Program Files (x86)Windows Kits10include10.0.17134.0ucrt" "-IC:Program Files (x86)Windows Kits10include10.0.17134.0shared" "-IC:Program Files (x86)Windows Kits10include10.0.17134.0um" "-IC:Program Files (x86)Windows Kits10include10.0.17134.0winrt" "-IC:Program Files (x86)Windows Kits10include10.0.17134.0cppwinrt" /Tcpycocotools/_mask.c /Fobuild emp.win-amd64-3.6Releasepycocotools/_mask.obj -Wno-cpp -Wno-unused-function -std=c99
cl: 命令行 error D8021 :无效的数值参数“/Wno-cpp”
error: command 'H:\VisualStudio2017\install\VC\Tools\MSVC\14.15.26726\bin\HostX86\x64\cl.exe' failed with exit status 2
----------------------------------------
Failed building wheel for pycocotools
Running setup.py clean for pycocotools
Failed to build pycocotools
Installing collected packages: pycocotools
Running setup.py install for pycocotools ... error
Complete output from command f:anaconda3python.exe -u -c "import setuptools, tokenize;__file__='C:\Users\new\AppData\Local\Temp\pip-install-dhenr2zw\pycocotools\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('
', '
');f.close();exec(compile(code, __file__, 'exec'))" install --record C:Users
ewAppDataLocalTemppip-record-e6xfvts6install-record.txt --single-version-externally-managed --compile:
running install
running build
running build_py
creating build
creating buildlib.win-amd64-3.6
creating buildlib.win-amd64-3.6pycocotools
copying pycocotoolscoco.py -> buildlib.win-amd64-3.6pycocotools
copying pycocotoolscocoeval.py -> buildlib.win-amd64-3.6pycocotools
copying pycocotoolsmask.py -> buildlib.win-amd64-3.6pycocotools
copying pycocotools\__init__.py -> buildlib.win-amd64-3.6pycocotools
running build_ext
building 'pycocotools._mask' extension
creating build emp.win-amd64-3.6
creating build emp.win-amd64-3.6Release
creating build emp.win-amd64-3.6Releasepycocotools
creating build emp.win-amd64-3.6Releasecommon
H:VisualStudio2017installVCToolsMSVC14.15.26726inHostX86x64cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -If:anaconda3libsite-packages
umpycoreinclude -Icommon -If:anaconda3include -If:anaconda3include -IH:VisualStudio2017installVCToolsMSVC14.15.26726ATLMFCinclude -IH:VisualStudio2017installVCToolsMSVC14.15.26726include "-IC:Program Files (x86)Windows KitsNETFXSDK4.6.1includeum" "-IC:Program Files (x86)Windows Kits10include10.0.17134.0ucrt" "-IC:Program Files (x86)Windows Kits10include10.0.17134.0shared" "-IC:Program Files (x86)Windows Kits10include10.0.17134.0um" "-IC:Program Files (x86)Windows Kits10include10.0.17134.0winrt" "-IC:Program Files (x86)Windows Kits10include10.0.17134.0cppwinrt" /Tcpycocotools/_mask.c /Fobuild emp.win-amd64-3.6Releasepycocotools/_mask.obj -Wno-cpp -Wno-unused-function -std=c99
cl: 命令行 error D8021 :无效的数值参数“/Wno-cpp”
error: command 'H:\VisualStudio2017\install\VC\Tools\MSVC\14.15.26726\bin\HostX86\x64\cl.exe' failed with exit status 2
----------------------------------------
Command "f:anaconda3python.exe -u -c "import setuptools, tokenize;__file__='C:\Users\new\AppData\Local\Temp\pip-install-dhenr2zw\pycocotools\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('
', '
');f.close();exec(compile(code, __file__, 'exec'))" install --record C:Users
ewAppDataLocalTemppip-record-e6xfvts6install-record.txt --single-version-externally-managed --compile" failed with error code 1 in C:Users
ewAppDataLocalTemppip-install-dhenr2zwpycocotools
(base) G:cocoPythonAPI>
(base) G:cocoPythonAPI>
====================解决方法
打开cocoPythonAPI目录下的 setup.py文件,修改ext_modules extra_compile_args=['-Wno-cpp', '-Wno-unused-function', '-std=c99'],
修改如下:
--------------------------------------------------------------
from setuptools import setup, Extension
import numpy as np
# To compile and install locally run "python setup.py build_ext --inplace"
# To install library to Python site-packages run "python setup.py build_ext install"
ext_modules = [
Extension(
'pycocotools._mask',
sources=['../common/maskApi.c', 'pycocotools/_mask.pyx'],
include_dirs = [np.get_include(), '../common'],
#修改位置,去掉
#extra_compile_args=['-Wno-cpp', '-Wno-unused-function', '-std=c99'],
extra_compile_args=['', '', ''],
)
]
setup(
name='pycocotools',
packages=['pycocotools'],
package_dir = {'pycocotools': 'pycocotools'},
install_requires=[
'setuptools>=18.0',
'cython>=0.27.3',
'matplotlib>=2.1.0'
],
version='2.0',
ext_modules= ext_modules
)
--------------------------------------------------------------
然后保存setup.py文件
然后继续执行
(base) G:cocoPythonAPI>python setup.py build_ext --inplace
控制台输出:
==================================
running build_ext
skipping 'pycocotools\_mask.c' Cython extension (up-to-date)
building 'pycocotools._mask' extension
H:VisualStudio2017installVCToolsMSVC14.15.26726inHostX86x64cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -IF:Anaconda3libsite-packages
umpycoreinclude -I../common -IF:Anaconda3include -IF:Anaconda3include -IH:VisualStudio2017installVCToolsMSVC14.15.26726ATLMFCinclude -IH:VisualStudio2017installVCToolsMSVC14.15.26726include "-IC:Program Files (x86)Windows KitsNETFXSDK4.6.1includeum" "-IC:Program Files (x86)Windows Kits10include10.0.17134.0ucrt" "-IC:Program Files (x86)Windows Kits10include10.0.17134.0shared" "-IC:Program Files (x86)Windows Kits10include10.0.17134.0um" "-IC:Program Files (x86)Windows Kits10include10.0.17134.0winrt" "-IC:Program Files (x86)Windows Kits10include10.0.17134.0cppwinrt" /Tc../common/maskApi.c /Fobuild emp.win-amd64-3.6Release../common/maskApi.obj
maskApi.c
H:VisualStudio2017installVCToolsMSVC14.15.26726inHostX86x64cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -IF:Anaconda3libsite-packages
umpycoreinclude -I../common -IF:Anaconda3include -IF:Anaconda3include -IH:VisualStudio2017installVCToolsMSVC14.15.26726ATLMFCinclude -IH:VisualStudio2017installVCToolsMSVC14.15.26726include "-IC:Program Files (x86)Windows KitsNETFXSDK4.6.1includeum" "-IC:Program Files (x86)Windows Kits10include10.0.17134.0ucrt" "-IC:Program Files (x86)Windows Kits10include10.0.17134.0shared" "-IC:Program Files (x86)Windows Kits10include10.0.17134.0um" "-IC:Program Files (x86)Windows Kits10include10.0.17134.0winrt" "-IC:Program Files (x86)Windows Kits10include10.0.17134.0cppwinrt" /Tcpycocotools\_mask.c /Fobuild emp.win-amd64-3.6Releasepycocotools\_mask.obj
_mask.c
f:anaconda3libsite-packages
umpycoreinclude
umpy
py_1_7_deprecated_api.h(12) : Warning Msg: Using deprecated NumPy API, disable it by #defining NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
pycocotools\_mask.c(3162): warning C4244: “=”: 从“Py_ssize_t”转换到“siz”,可能丢失数据
pycocotools\_mask.c(3586): warning C4244: “函数”: 从“npy_intp”转换到“siz”,可能丢失数据
pycocotools\_mask.c(7016): warning C4244: “=”: 从“npy_intp”转换到“siz”,可能丢失数据
pycocotools\_mask.c(7819): warning C4244: “=”: 从“Py_ssize_t”转换到“siz”,可能丢失数据
pycocotools\_mask.c(15677): warning C4244: “初始化”: 从“double”转换到“float”,可能丢失数据
pycocotools\_mask.c(15683): warning C4244: “初始化”: 从“double”转换到“float”,可能丢失数据
creating G:cocoPythonAPIuildlib.win-amd64-3.6
creating G:cocoPythonAPIuildlib.win-amd64-3.6pycocotools
H:VisualStudio2017installVCToolsMSVC14.15.26726inHostX86x64link.exe /nologo /INCREMENTAL:NO /LTCG /DLL /MANIFEST:EMBED,ID=2 /MANIFESTUAC:NO /LIBPATH:F:Anaconda3libs /LIBPATH:F:Anaconda3PCbuildamd64 /LIBPATH:H:VisualStudio2017installVCToolsMSVC14.15.26726ATLMFClibx64 /LIBPATH:H:VisualStudio2017installVCToolsMSVC14.15.26726libx64 "/LIBPATH:C:Program Files (x86)Windows KitsNETFXSDK4.6.1libumx64" "/LIBPATH:C:Program Files (x86)Windows Kits10lib10.0.17134.0ucrtx64" "/LIBPATH:C:Program Files (x86)Windows Kits10lib10.0.17134.0umx64" /EXPORT:PyInit__mask build emp.win-amd64-3.6Release../common/maskApi.obj build emp.win-amd64-3.6Releasepycocotools\_mask.obj /OUT:buildlib.win-amd64-3.6pycocotools\_mask.cp36-win_amd64.pyd /IMPLIB:build emp.win-amd64-3.6Release../common\_mask.cp36-win_amd64.lib
正在创建库 build emp.win-amd64-3.6Release../common\_mask.cp36-win_amd64.lib 和对象 build emp.win-amd64-3.6Release../common\_mask.cp36-win_amd64.exp
正在生成代码
已完成代码的生成
copying buildlib.win-amd64-3.6pycocotools\_mask.cp36-win_amd64.pyd -> pycocotools
==================================
(base) G:cocoPythonAPI>
(base) G:cocoPythonAPI>
(base) G:cocoPythonAPI>
然后执行:python setup.py build_ext install
(base) G:cocoPythonAPI>python setup.py build_ext install
running build_ext
skipping 'pycocotools\_mask.c' Cython extension (up-to-date)
running install
running bdist_egg
running egg_info
creating pycocotools.egg-info
writing pycocotools.egg-infoPKG-INFO
writing dependency_links to pycocotools.egg-infodependency_links.txt
writing requirements to pycocotools.egg-info
equires.txt
writing top-level names to pycocotools.egg-info op_level.txt
writing manifest file 'pycocotools.egg-infoSOURCES.txt'
reading manifest file 'pycocotools.egg-infoSOURCES.txt'
writing manifest file 'pycocotools.egg-infoSOURCES.txt'
installing library code to builddist.win-amd64egg
running install_lib
running build_py
copying pycocotoolscoco.py -> buildlib.win-amd64-3.6pycocotools
copying pycocotoolscocoeval.py -> buildlib.win-amd64-3.6pycocotools
copying pycocotoolsmask.py -> buildlib.win-amd64-3.6pycocotools
copying pycocotools\__init__.py -> buildlib.win-amd64-3.6pycocotools
creating builddist.win-amd64
creating builddist.win-amd64egg
creating builddist.win-amd64eggpycocotools
copying buildlib.win-amd64-3.6pycocotoolscoco.py -> builddist.win-amd64eggpycocotools
copying buildlib.win-amd64-3.6pycocotoolscocoeval.py -> builddist.win-amd64eggpycocotools
copying buildlib.win-amd64-3.6pycocotoolsmask.py -> builddist.win-amd64eggpycocotools
copying buildlib.win-amd64-3.6pycocotools\_mask.cp36-win_amd64.pyd -> builddist.win-amd64eggpycocotools
copying buildlib.win-amd64-3.6pycocotools\__init__.py -> builddist.win-amd64eggpycocotools
byte-compiling builddist.win-amd64eggpycocotoolscoco.py to coco.cpython-36.pyc
byte-compiling builddist.win-amd64eggpycocotoolscocoeval.py to cocoeval.cpython-36.pyc
byte-compiling builddist.win-amd64eggpycocotoolsmask.py to mask.cpython-36.pyc
byte-compiling builddist.win-amd64eggpycocotools\__init__.py to __init__.cpython-36.pyc
creating stub loader for pycocotools\_mask.cp36-win_amd64.pyd
byte-compiling builddist.win-amd64eggpycocotools\_mask.py to _mask.cpython-36.pyc
creating builddist.win-amd64eggEGG-INFO
copying pycocotools.egg-infoPKG-INFO -> builddist.win-amd64eggEGG-INFO
copying pycocotools.egg-infoSOURCES.txt -> builddist.win-amd64eggEGG-INFO
copying pycocotools.egg-infodependency_links.txt -> builddist.win-amd64eggEGG-INFO
copying pycocotools.egg-info
equires.txt -> builddist.win-amd64eggEGG-INFO
copying pycocotools.egg-info op_level.txt -> builddist.win-amd64eggEGG-INFO
writing builddist.win-amd64eggEGG-INFO
ative_libs.txt
zip_safe flag not set; analyzing archive contents...
pycocotools.__pycache__._mask.cpython-36: module references __file__
creating dist
creating 'distpycocotools-2.0-py3.6-win-amd64.egg' and adding 'builddist.win-amd64egg' to it
removing 'builddist.win-amd64egg' (and everything under it)
Processing pycocotools-2.0-py3.6-win-amd64.egg
creating f:anaconda3libsite-packagespycocotools-2.0-py3.6-win-amd64.egg
Extracting pycocotools-2.0-py3.6-win-amd64.egg to f:anaconda3libsite-packages
Adding pycocotools 2.0 to easy-install.pth file
Installed f:anaconda3libsite-packagespycocotools-2.0-py3.6-win-amd64.egg
Processing dependencies for pycocotools==2.0
Searching for matplotlib==2.2.2
Best match: matplotlib 2.2.2
Adding matplotlib 2.2.2 to easy-install.pth file
Using f:anaconda3libsite-packages
Searching for Cython==0.28.2
Best match: Cython 0.28.2
Adding Cython 0.28.2 to easy-install.pth file
Installing cygdb-script.py script to F:Anaconda3Scripts
Installing cygdb.exe script to F:Anaconda3Scripts
Installing cython-script.py script to F:Anaconda3Scripts
Installing cython.exe script to F:Anaconda3Scripts
Installing cythonize-script.py script to F:Anaconda3Scripts
Installing cythonize.exe script to F:Anaconda3Scripts
Using f:anaconda3libsite-packages
Searching for setuptools==39.1.0
Best match: setuptools 39.1.0
Adding setuptools 39.1.0 to easy-install.pth file
Installing easy_install-script.py script to F:Anaconda3Scripts
Installing easy_install.exe script to F:Anaconda3Scripts
Using f:anaconda3libsite-packages
Searching for kiwisolver==1.0.1
Best match: kiwisolver 1.0.1
Adding kiwisolver 1.0.1 to easy-install.pth file
Using f:anaconda3libsite-packages
Searching for six==1.11.0
Best match: six 1.11.0
Adding six 1.11.0 to easy-install.pth file
Using f:anaconda3libsite-packages
Searching for pytz==2018.4
Best match: pytz 2018.4
Adding pytz 2018.4 to easy-install.pth file
Using f:anaconda3libsite-packages
Searching for python-dateutil==2.7.3
Best match: python-dateutil 2.7.3
Adding python-dateutil 2.7.3 to easy-install.pth file
Using f:anaconda3libsite-packages
Searching for pyparsing==2.2.0
Best match: pyparsing 2.2.0
Adding pyparsing 2.2.0 to easy-install.pth file
Using f:anaconda3libsite-packages
Searching for cycler==0.10.0
Best match: cycler 0.10.0
Adding cycler 0.10.0 to easy-install.pth file
Using f:anaconda3libsite-packages
Searching for numpy==1.14.3
Best match: numpy 1.14.3
Adding numpy 1.14.3 to easy-install.pth file
Using f:anaconda3libsite-packages
Finished processing dependencies for pycocotools==2.0
(base) G:cocoPythonAPI>
(base) G:cocoPythonAPI>
(base) G:cocoPythonAPI>
(base) G:cocoPythonAPI>
(base) G:cocoPythonAPI>
安装完毕!
然后执行Mask_RCNN测试代码