win10下安裝python3.5的dlib 19.17庫(kù)

按說(shuō)安裝dlib很簡(jiǎn)單,直接使用pip3 install dlib即可安裝了;在Linux系統(tǒng)下很方便,使用這條命令就可以安裝成功;但是在windows下,會(huì)出現(xiàn)編譯錯(cuò)誤。

在windows下安裝dlib最新版本19.17,是非常麻煩和耗時(shí)的一件事情,里面有很多坑,很難編譯成功。網(wǎng)上很多資料都有介紹,試了還是沒(méi)有成功。我結(jié)合網(wǎng)上資料和個(gè)人摸索,成功完成dlib 19.17的編譯和安裝。

dlib19.17編譯主要依賴(lài)幾個(gè)工具:CMake,Boost和VS 2017(好像VS 2015以上的版本都可以);需要注意的是win10 64位系統(tǒng),以上工具和編譯都要采用64位的系統(tǒng)。為了安裝簡(jiǎn)單,建議電腦上只安裝python 3.5,不要安裝其他版本的python,以免設(shè)置不當(dāng)編譯出錯(cuò)。

1. CMake工具安裝

由于我是win10 64位系統(tǒng),所以選擇cmake-3.14.3-win64-x64.msi進(jìn)行下載安裝。這個(gè)安裝比較簡(jiǎn)單,按默認(rèn)一步步安裝即可,不做解釋。一般是安裝在C:\Program Files\CMake\bin目錄。


2. 安裝VC++編譯工具

要求VS 2015以上的版本,特別是VSVC++版本要滿足dlib編譯要求,最好是VS2017并且安裝過(guò)更新的版本。為什么安裝一個(gè)VS 2017要描述這么啰嗦,因?yàn)檫@個(gè)是編譯dlib的關(guān)鍵,如果版本和工具集沒(méi)有安裝對(duì),編譯就不會(huì)成功,還不知道錯(cuò)誤發(fā)生在哪里。我就是被這個(gè)折騰了一天時(shí)間。

dlib的編譯要求(在dlib-19.17.0\dlib\cmake_utils\set_compiler_specific_options.cmake描述如下):

(安裝VSVC++ version 15.9? v14.16版本即可,如下圖所示版本)

因?yàn)槲覀冎恍枰猇C++工具集編譯,所以只需要安裝VS 2017社區(qū)版本Visual Studio Community 2017即可??梢灾苯釉诠倬W(wǎng)https://visualstudio.microsoft.com/zh-hans/vs/older-downloads/下載安裝。下載vs2017_community.exe,一步步安裝即可,主要安裝使用C++的桌面開(kāi)發(fā)、使用C++的Linux開(kāi)發(fā)和Visual Studio擴(kuò)展開(kāi)發(fā)三個(gè)模塊,選項(xiàng)如下:

3.設(shè)置編譯的環(huán)境變量(系統(tǒng)變量):

在windows系統(tǒng)環(huán)境變量中,對(duì)Path變量添加如下幾個(gè)VS2017和Cmake的路徑(主要是cl.exe和cmake.exe編譯工具和頭文件的搜索路徑),如下圖所示:

設(shè)置完環(huán)境變量后,重新打開(kāi)cmd命令行窗口,分別執(zhí)行cl.exe和cmake.exe驗(yàn)證一下,是否設(shè)置成功;這兩條命令可以執(zhí)行成功,表示設(shè)置OK。(注意這里一定要是14.16.27023以上的版本,如果是14.10.25017版本,請(qǐng)先升級(jí)VS2017的更新。我之前使用14.10.25017編譯失?。?/p>


4.? boost工具下載源代碼,編譯和安裝

使用pip install boost安裝最簡(jiǎn)單、快捷,但是可能是目前可以安裝的版本太低的原因,會(huì)導(dǎo)致編譯dlib不成功。這里我是安照網(wǎng)上資料介紹,采用下載源代碼方式進(jìn)行編譯安裝的。

boost官網(wǎng):https://www.boost.org/?(國(guó)外網(wǎng)站,在國(guó)內(nèi)訪問(wèn)都比較慢)

從官網(wǎng)下載最新的boost_1_70_0.zip文件,成功后解壓(隨便那個(gè)目錄,可以直接在主目錄下解壓;我解壓目錄為C:\boost_1_70_0,避免使用中文、超長(zhǎng)名稱(chēng)或者有空格的目錄名稱(chēng),避免意外錯(cuò)誤),然后在編譯和安裝。

STEP1.進(jìn)入解壓后的目錄,執(zhí)行bootstrap.bat批處理命令:

在執(zhí)行bootstrap.bat前,會(huì)調(diào)用cl.exe,需要設(shè)置vc變量;先執(zhí)行vc設(shè)置環(huán)境變量的批處理vcvars64.bat,該文件位于我的機(jī)器C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build目錄中;否則編譯出錯(cuò),出現(xiàn)”fatal error C1034錯(cuò)誤:c:\boost_1_70_0\tools\build\src\engine\jam.h(71) : fatal error C1034: ctype.h: 不包括路徑集 compile.c“ 。如果成功就會(huì)生成b2.exe、bjam.exe以及project-config.jam文件。

STEP2. 執(zhí)行 b2 install,這步非常耗費(fèi)時(shí)間,大概要1~2個(gè)小時(shí)(由電腦性能決定)

STEP3.?執(zhí)行?b2 -a --with-python address-model=64 toolset=msvc runtime-link=static


在boost_1_70_0/stage/lib目錄下生成這兩個(gè)lib文件:

STEP4.將編譯好的boost 文件夾和lib加入到環(huán)境變量

設(shè)置windows的系統(tǒng)變量BOOST_LIBRARYDIR和BOOST_ROOT如下:

5.下載dlib源代碼,編譯、安裝

dlib官網(wǎng)為:http://dlib.net/

點(diǎn)擊Download dlib ver 19.17下載源代碼dlib-19.17.0.tar.gz到本地。解壓到c:\dlib-19.17.0目錄。為了保險(xiǎn)起見(jiàn)再次運(yùn)行vcvars64.bat文件,然后執(zhí)行python setup.py install命令進(jìn)行編譯和安裝。




這樣已經(jīng)將dlib庫(kù)安裝到環(huán)境中了。也可以使用python setup.py bdist_wininst命令打包成exe安裝程序,給其他人安裝使用。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容