參考
https://blog.csdn.net/m0_45971439/article/details/118332681
https://blog.csdn.net/en_Wency/article/details/124767742
一、報(bào)錯(cuò)內(nèi)容
該報(bào)錯(cuò)出現(xiàn)在安裝yolov5依賴包時(shí)
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
詳細(xì)報(bào)錯(cuò)信息
Building wheels for collected packages: pycocotools
Building wheel for pycocotools (pyproject.toml) ... error
error: subprocess-exited-with-error
× Building wheel for pycocotools (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> [23 lines of output]
running bdist_wheel
running build
running build_py
creating build
creating build\lib.win-amd64-cpython-38
creating build\lib.win-amd64-cpython-38\pycocotools
copying pycocotools\coco.py -> build\lib.win-amd64-cpython-38\pycocotools
copying pycocotools\cocoeval.py -> build\lib.win-amd64-cpython-38\pycocotools
copying pycocotools\mask.py -> build\lib.win-amd64-cpython-38\pycocotools
copying pycocotools\__init__.py -> build\lib.win-amd64-cpython-38\pycocotools
running build_ext
cythoning pycocotools/_mask.pyx to pycocotools\_mask.c
building 'pycocotools._mask' extension
creating build\temp.win-amd64-cpython-38
creating build\temp.win-amd64-cpython-38\Release
creating build\temp.win-amd64-cpython-38\Release\common
creating build\temp.win-amd64-cpython-38\Release\pycocotools
"d:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.33.31629\bin\HostX86\x64\cl.exe" /c /nologo /O2 /W3 /GL /DNDEBUG /MD -IC:\Users\JMan\AppData\Local\Temp\pip-build-env-d_ei2r35\overlay\Lib\site-packages\numpy\core\include -I./common -Id:\Users\JMan\anaconda3\envs\yolov5\include -Id:\Users\JMan\anaconda3\envs\yolov5\Include "-Id:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.33.31629\include" "-Id:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\VS\include" /Tc./common/maskApi.c /Fobuild\temp.win-amd64-cpython-38\Release\./common/maskApi.obj
maskApi.c
./common/maskApi.c(8): fatal error C1083: 無(wú)法打開包括文件: “math.h”: No such file or directory
C:\Users\JMan\AppData\Local\Temp\pip-build-env-d_ei2r35\overlay\Lib\site-packages\Cython\Compiler\Main.py:369: FutureWarning: Cython directive 'language_level' not set, using 2 for now (Py2). This will change in a later release! File: C:\Users\JMan\AppData\Local\Temp\pip-install-jawtp7pt\pycocotools_d75225a67ebb4faa97736024f57f7e57\pycocotools\_mask.pyx
tree = Parsing.p_module(s, pxd, full_module_name)
error: command 'd:\\Program Files (x86)\\Microsoft Visual Studio\\2022\\BuildTools\\VC\\Tools\\MSVC\\14.33.31629\\bin\\HostX86\\x64\\cl.exe' failed with exit code 2
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for pycocotools
Failed to build pycocotools
ERROR: Could not build wheels for pycocotools, which is required to install pyproject.toml-based projects
這個(gè)報(bào)錯(cuò)在上次安裝yolov5依賴包時(shí)也出現(xiàn)過(guò),可以見(jiàn)https://blog.csdn.net/weixin_45246566/article/details/127619175?spm=1001.2014.3001.5501
然而仔細(xì)查看報(bào)錯(cuò)內(nèi)容可以發(fā)現(xiàn)兩次報(bào)錯(cuò)的原因是不同的,這次問(wèn)題的根本原因是【W(wǎng)indows不能直接安裝pycocotools】
下面記錄一下曲折離奇的Windows安裝pycocotools(差點(diǎn)翻車)過(guò)程。
(說(shuō)實(shí)話,寫到這兒都不知道能不能安明白,也不確定這篇文章能不能寫出來(lái)。)
二、Windows11上安裝pycocotools
1.下載pycocotools源碼
- 在這里下載 https://github.com/cocodataset/cocoapi
- 將下載解壓后的文件夾直接放入帶配置環(huán)境下的
site-packages
我這里是要在新創(chuàng)建的環(huán)境yolov5下安裝,目錄為:D:\Users\JMan\anaconda3\envs\yolov5\Lib\site-packages
2.安裝vs
這里安裝的是2022community,因?yàn)橹鞍惭b了vs installer,所以直接在里面下載。
這里需要注意的地方就是要勾選 使用C++的桌面開發(fā) 和 Windows11 SDK(SDK在單個(gè)組件中,win10系統(tǒng)就選win10 SDK)
3.配置vs的環(huán)境變量
在很多教程中不涉及這一部分,但我在經(jīng)歷了無(wú)數(shù)次報(bào)錯(cuò)無(wú)法解決后可以肯定這一步驟是很重要的!以下操作都是在用戶變量中進(jìn)行。(設(shè)置-高級(jí)系統(tǒng)設(shè)置-環(huán)境變量)
- (1)找到路徑
C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\bin\Hostx64\x64
就是順著vs的安裝路徑找,找不到安裝路徑可以右鍵快捷方式,查找文件所在位置。
把上面這個(gè)路徑添加到用戶變量的Path中 - (2)新建一個(gè)名為INCLUDE的用戶變量
添加路徑C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\include
然后定位到 Windows Kits 文件夾,如果你把應(yīng)用裝在D盤,你就會(huì)在D盤找到D:\Windows Kits
路徑,而如果你的應(yīng)用在C盤那就在路徑C:\Program Files (x86)\Windows Kits
繼續(xù)進(jìn)入路徑C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0
這一串?dāng)?shù)字是你安裝的SDK的版本號(hào)。
將該文件夾下的五個(gè)文件夾的路徑依次存入INCLUDE中,就像這樣: - (3)新建一個(gè)名為L(zhǎng)IB的用戶變量
填寫這個(gè)路徑(對(duì)應(yīng)你自己的):C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\lib\x64
再去到Windows Kits
文件夾,找到路徑C:\Program Files (x86)\Windows Kits\10\Lib\10.0.22621.0
將里面每個(gè)文件夾里的x64
文件夾的路徑寫入變量LIB中,像這樣:
以上環(huán)境變量就配置完成啦!
可以驗(yàn)證一下是否配置成功: win+r輸入cmd打開命令提示符窗口,輸入cl,出現(xiàn)下圖則配置成功:
4.編譯
進(jìn)入yolov5環(huán)境(因?yàn)槲乙谶@個(gè)環(huán)境下安裝),然后進(jìn)到剛才復(fù)制到site-package文件夾下的PythonAPI路徑下,運(yùn)行下面兩條指令:
python setup.py build_ext --inplace
python setup.py build_ext install
就可以了。
三、報(bào)錯(cuò)記錄
報(bào)錯(cuò)基本上是出現(xiàn)在執(zhí)行python setup.py build_ext --inplace
命令時(shí)。
1.無(wú)效的數(shù)值參數(shù)
cl: 命令行 error D8021 :無(wú)效的數(shù)值參數(shù)“/Wno-cpp” 和 cl: 命令行 error D8021 :無(wú)效的數(shù)值參數(shù)“/Wno-unused-function”
這里是說(shuō)setup.py
文件中有無(wú)效的參數(shù),解決的辦法是將setup.py
中的這一行注釋掉,比較神奇的是,我第二次下載的cocoapi-master文件已經(jīng)直接將這行注釋掉了。這個(gè)文件就在PythonAPI文件夾下。
2.找不到頭文件’math.h’
這個(gè)報(bào)錯(cuò)的截圖找不到了,后來(lái)配置了vs的環(huán)境變量后就不再報(bào)錯(cuò)了。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-421133.html
3.缺少xxx包
-
ModuleNotFoundError: No module named 'Cython'
像這種就直接pip install Cython
-
AttributeError: module 'numpy' has no attribute 'get_include'
這里提示numpy包有問(wèn)題,也是uninstall后再install,少的包都install后就解決了。
【寫在最后】:這是一個(gè)很艱辛的過(guò)程,在臨近畢設(shè)中期的緊張時(shí)刻浪費(fèi)了我很多時(shí)間,不過(guò)也算是成功從良莠不齊的百度資料中試錯(cuò)成功。文章內(nèi)容是在我安裝成功后集中寫的,可能有細(xì)節(jié)遺漏,因此僅供參考,主要是寫給自己作為備忘。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-421133.html
到了這里,關(guān)于如何在Windows 11上安裝pycocotools(實(shí)操記錄)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!