Win10 pip安装pycocotools报错解决方法(cl: 命令行 error D8021 :无效的数值参数“/Wno-cpp”)

时间:2023-03-08 18:28:15
Win10 pip安装pycocotools报错解决方法(cl: 命令行 error D8021 :无效的数值参数“/Wno-cpp”)

参考:

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:\coco\PythonAPI>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:\anaconda3\python.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('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d C:\Users\new\AppData\Local\Temp\pip-wheel-_9g45pb4 --python-tag cp36:
 running bdist_wheel
 running build
 running build_py
 creating build
 creating build\lib.win-amd64-3.6
 creating build\lib.win-amd64-3.6\pycocotools
 copying pycocotools\coco.py -> build\lib.win-amd64-3.6\pycocotools
 copying pycocotools\cocoeval.py -> build\lib.win-amd64-3.6\pycocotools
 copying pycocotools\mask.py -> build\lib.win-amd64-3.6\pycocotools
 copying pycocotools\__init__.py -> build\lib.win-amd64-3.6\pycocotools
 running build_ext
 building 'pycocotools._mask' extension
 creating build\temp.win-amd64-3.6
 creating build\temp.win-amd64-3.6\Release
 creating build\temp.win-amd64-3.6\Release\pycocotools
 creating build\temp.win-amd64-3.6\Release\common
 H:\VisualStudio2017\install\VC\Tools\MSVC\14.15.26726\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -If:\anaconda3\lib\site-packages\numpy\core\include -Icommon -If:\anaconda3\include -If:\anaconda3\include -IH:\VisualStudio2017\install\VC\Tools\MSVC\14.15.26726\ATLMFC\include -IH:\VisualStudio2017\install\VC\Tools\MSVC\14.15.26726\include "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\include\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\cppwinrt" /Tcpycocotools/_mask.c /Fobuild\temp.win-amd64-3.6\Release\pycocotools/_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:\anaconda3\python.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('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\new\AppData\Local\Temp\pip-record-e6xfvts6\install-record.txt --single-version-externally-managed --compile:
  running install
  running build
  running build_py
  creating build
  creating build\lib.win-amd64-3.6
  creating build\lib.win-amd64-3.6\pycocotools
  copying pycocotools\coco.py -> build\lib.win-amd64-3.6\pycocotools
  copying pycocotools\cocoeval.py -> build\lib.win-amd64-3.6\pycocotools
  copying pycocotools\mask.py -> build\lib.win-amd64-3.6\pycocotools
  copying pycocotools\__init__.py -> build\lib.win-amd64-3.6\pycocotools
  running build_ext
  building 'pycocotools._mask' extension
  creating build\temp.win-amd64-3.6
  creating build\temp.win-amd64-3.6\Release
  creating build\temp.win-amd64-3.6\Release\pycocotools
  creating build\temp.win-amd64-3.6\Release\common
  H:\VisualStudio2017\install\VC\Tools\MSVC\14.15.26726\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -If:\anaconda3\lib\site-packages\numpy\core\include -Icommon -If:\anaconda3\include -If:\anaconda3\include -IH:\VisualStudio2017\install\VC\Tools\MSVC\14.15.26726\ATLMFC\include -IH:\VisualStudio2017\install\VC\Tools\MSVC\14.15.26726\include "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\include\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\cppwinrt" /Tcpycocotools/_mask.c /Fobuild\temp.win-amd64-3.6\Release\pycocotools/_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:\anaconda3\python.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('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record C:\Users\new\AppData\Local\Temp\pip-record-e6xfvts6\install-record.txt --single-version-externally-managed --compile" failed with error code 1 in C:\Users\new\AppData\Local\Temp\pip-install-dhenr2zw\pycocotools\

(base) G:\coco\PythonAPI>

(base) G:\coco\PythonAPI>

====================解决方法

打开coco\PythonAPI目录下的 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:\coco\PythonAPI>python setup.py build_ext --inplace

控制台输出:

==================================

running build_ext
skipping 'pycocotools\_mask.c' Cython extension (up-to-date)
building 'pycocotools._mask' extension
H:\VisualStudio2017\install\VC\Tools\MSVC\14.15.26726\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -IF:\Anaconda3\lib\site-packages\numpy\core\include -I../common -IF:\Anaconda3\include -IF:\Anaconda3\include -IH:\VisualStudio2017\install\VC\Tools\MSVC\14.15.26726\ATLMFC\include -IH:\VisualStudio2017\install\VC\Tools\MSVC\14.15.26726\include "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\include\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\cppwinrt" /Tc../common/maskApi.c /Fobuild\temp.win-amd64-3.6\Release\../common/maskApi.obj
maskApi.c
H:\VisualStudio2017\install\VC\Tools\MSVC\14.15.26726\bin\HostX86\x64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -IF:\Anaconda3\lib\site-packages\numpy\core\include -I../common -IF:\Anaconda3\include -IF:\Anaconda3\include -IH:\VisualStudio2017\install\VC\Tools\MSVC\14.15.26726\ATLMFC\include -IH:\VisualStudio2017\install\VC\Tools\MSVC\14.15.26726\include "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\include\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\shared" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\um" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\winrt" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.17134.0\cppwinrt" /Tcpycocotools\_mask.c /Fobuild\temp.win-amd64-3.6\Release\pycocotools\_mask.obj
_mask.c
f:\anaconda3\lib\site-packages\numpy\core\include\numpy\npy_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:\coco\PythonAPI\build\lib.win-amd64-3.6
creating G:\coco\PythonAPI\build\lib.win-amd64-3.6\pycocotools
H:\VisualStudio2017\install\VC\Tools\MSVC\14.15.26726\bin\HostX86\x64\link.exe /nologo /INCREMENTAL:NO /LTCG /DLL /MANIFEST:EMBED,ID=2 /MANIFESTUAC:NO /LIBPATH:F:\Anaconda3\libs /LIBPATH:F:\Anaconda3\PCbuild\amd64 /LIBPATH:H:\VisualStudio2017\install\VC\Tools\MSVC\14.15.26726\ATLMFC\lib\x64 /LIBPATH:H:\VisualStudio2017\install\VC\Tools\MSVC\14.15.26726\lib\x64 "/LIBPATH:C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\lib\um\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.17134.0\ucrt\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.17134.0\um\x64" /EXPORT:PyInit__mask build\temp.win-amd64-3.6\Release\../common/maskApi.obj build\temp.win-amd64-3.6\Release\pycocotools\_mask.obj /OUT:build\lib.win-amd64-3.6\pycocotools\_mask.cp36-win_amd64.pyd /IMPLIB:build\temp.win-amd64-3.6\Release\../common\_mask.cp36-win_amd64.lib
正在创建库 build\temp.win-amd64-3.6\Release\../common\_mask.cp36-win_amd64.lib 和对象 build\temp.win-amd64-3.6\Release\../common\_mask.cp36-win_amd64.exp
正在生成代码
已完成代码的生成
copying build\lib.win-amd64-3.6\pycocotools\_mask.cp36-win_amd64.pyd -> pycocotools

==================================

(base) G:\coco\PythonAPI>

(base) G:\coco\PythonAPI>

(base) G:\coco\PythonAPI>

然后执行:python setup.py build_ext install

(base) G:\coco\PythonAPI>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-info\PKG-INFO
writing dependency_links to pycocotools.egg-info\dependency_links.txt
writing requirements to pycocotools.egg-info\requires.txt
writing top-level names to pycocotools.egg-info\top_level.txt
writing manifest file 'pycocotools.egg-info\SOURCES.txt'
reading manifest file 'pycocotools.egg-info\SOURCES.txt'
writing manifest file 'pycocotools.egg-info\SOURCES.txt'
installing library code to build\bdist.win-amd64\egg
running install_lib
running build_py
copying pycocotools\coco.py -> build\lib.win-amd64-3.6\pycocotools
copying pycocotools\cocoeval.py -> build\lib.win-amd64-3.6\pycocotools
copying pycocotools\mask.py -> build\lib.win-amd64-3.6\pycocotools
copying pycocotools\__init__.py -> build\lib.win-amd64-3.6\pycocotools
creating build\bdist.win-amd64
creating build\bdist.win-amd64\egg
creating build\bdist.win-amd64\egg\pycocotools
copying build\lib.win-amd64-3.6\pycocotools\coco.py -> build\bdist.win-amd64\egg\pycocotools
copying build\lib.win-amd64-3.6\pycocotools\cocoeval.py -> build\bdist.win-amd64\egg\pycocotools
copying build\lib.win-amd64-3.6\pycocotools\mask.py -> build\bdist.win-amd64\egg\pycocotools
copying build\lib.win-amd64-3.6\pycocotools\_mask.cp36-win_amd64.pyd -> build\bdist.win-amd64\egg\pycocotools
copying build\lib.win-amd64-3.6\pycocotools\__init__.py -> build\bdist.win-amd64\egg\pycocotools
byte-compiling build\bdist.win-amd64\egg\pycocotools\coco.py to coco.cpython-36.pyc
byte-compiling build\bdist.win-amd64\egg\pycocotools\cocoeval.py to cocoeval.cpython-36.pyc
byte-compiling build\bdist.win-amd64\egg\pycocotools\mask.py to mask.cpython-36.pyc
byte-compiling build\bdist.win-amd64\egg\pycocotools\__init__.py to __init__.cpython-36.pyc
creating stub loader for pycocotools\_mask.cp36-win_amd64.pyd
byte-compiling build\bdist.win-amd64\egg\pycocotools\_mask.py to _mask.cpython-36.pyc
creating build\bdist.win-amd64\egg\EGG-INFO
copying pycocotools.egg-info\PKG-INFO -> build\bdist.win-amd64\egg\EGG-INFO
copying pycocotools.egg-info\SOURCES.txt -> build\bdist.win-amd64\egg\EGG-INFO
copying pycocotools.egg-info\dependency_links.txt -> build\bdist.win-amd64\egg\EGG-INFO
copying pycocotools.egg-info\requires.txt -> build\bdist.win-amd64\egg\EGG-INFO
copying pycocotools.egg-info\top_level.txt -> build\bdist.win-amd64\egg\EGG-INFO
writing build\bdist.win-amd64\egg\EGG-INFO\native_libs.txt
zip_safe flag not set; analyzing archive contents...
pycocotools.__pycache__._mask.cpython-36: module references __file__
creating dist
creating 'dist\pycocotools-2.0-py3.6-win-amd64.egg' and adding 'build\bdist.win-amd64\egg' to it
removing 'build\bdist.win-amd64\egg' (and everything under it)
Processing pycocotools-2.0-py3.6-win-amd64.egg
creating f:\anaconda3\lib\site-packages\pycocotools-2.0-py3.6-win-amd64.egg
Extracting pycocotools-2.0-py3.6-win-amd64.egg to f:\anaconda3\lib\site-packages
Adding pycocotools 2.0 to easy-install.pth file

Installed f:\anaconda3\lib\site-packages\pycocotools-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:\anaconda3\lib\site-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:\Anaconda3\Scripts
Installing cygdb.exe script to F:\Anaconda3\Scripts
Installing cython-script.py script to F:\Anaconda3\Scripts
Installing cython.exe script to F:\Anaconda3\Scripts
Installing cythonize-script.py script to F:\Anaconda3\Scripts
Installing cythonize.exe script to F:\Anaconda3\Scripts

Using f:\anaconda3\lib\site-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:\Anaconda3\Scripts
Installing easy_install.exe script to F:\Anaconda3\Scripts

Using f:\anaconda3\lib\site-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:\anaconda3\lib\site-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:\anaconda3\lib\site-packages
Searching for pytz==2018.4
Best match: pytz 2018.4
Adding pytz 2018.4 to easy-install.pth file

Using f:\anaconda3\lib\site-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:\anaconda3\lib\site-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:\anaconda3\lib\site-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:\anaconda3\lib\site-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:\anaconda3\lib\site-packages
Finished processing dependencies for pycocotools==2.0

(base) G:\coco\PythonAPI>

(base) G:\coco\PythonAPI>

(base) G:\coco\PythonAPI>

(base) G:\coco\PythonAPI>

(base) G:\coco\PythonAPI>

安装完毕!

然后执行Mask_RCNN测试代码

Win10 pip安装pycocotools报错解决方法(cl: 命令行 error D8021 :无效的数值参数“/Wno-cpp”)

Win10 pip安装pycocotools报错解决方法(cl: 命令行 error D8021 :无效的数值参数“/Wno-cpp”)

Win10 pip安装pycocotools报错解决方法(cl: 命令行 error D8021 :无效的数值参数“/Wno-cpp”)

Win10 pip安装pycocotools报错解决方法(cl: 命令行 error D8021 :无效的数值参数“/Wno-cpp”)

Win10 pip安装pycocotools报错解决方法(cl: 命令行 error D8021 :无效的数值参数“/Wno-cpp”)

Win10 pip安装pycocotools报错解决方法(cl: 命令行 error D8021 :无效的数值参数“/Wno-cpp”)