dlib 19 安裝成功 ( winows python38)


在windows python 3.8 環境成功安裝 dlib 19.19.0

 

一、 使用pip 安裝dlib失敗。

 

     1. 安裝dlib之前需要先安裝cmake.

         使用pip 安裝cmake順利。安裝的版本為目前最新版3.16.3 .

 

     2. 使用pip安裝dlib失敗。

        報錯顯示:Python config failure: Python is 32-bit, chosen compiler is 64-bit

 

二、 安裝失敗原因分析:

     1. 根據提示檢查了本地環境:

(1) python版本:Python 3.8.1 [MSC v.1916 32 bit (Intel)] on win32

(2)編譯器版本:

查看打印信息中的這一條:

Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.20.27508/bin/Hostx64/x64/cl.exe

 

2. 原因分析:

    Setup.py 調用了cmake,使用本機安裝的64位VC作為編譯器,導致錯誤發生。本機安裝的python3.8是32位的。

 

三、 解決辦法

      放棄pip安裝,手動下載dlib最新版本,執行setup.py進行安裝。

     下載的dlib為最新版本19.19.

 

     1. 通過設置參數調用setup.py。

        打開setup.py文件,可以看到如下提示信息:

       

 

       可見,通過-G參數可以設置編譯器的類型。

 

        2. 嘗試setup.py  -G參數 失敗

 

 

 

    可見,-G 為 Generator的簡稱。

    Cmake安裝成功后,存放在python安裝目錄下的Lib\site-packages\cmake\data\bin。其中cmake-gui.exe為UI界面。通過此界面,可以看出cmake -A 參數的四個可選值:ARM64,ARM,WIN32和x64。

 

 

 嘗試指定編譯器為32位:

 

 

  執行失敗,cmake沒有正確的識別generator的名字。如果不執行-A win32則依然選擇編譯器為64位。

   不知道如何通過-G參數指定編譯器為 win32。

 

3. 逐行查看setup.py文件,注釋掉setup.py中的cmake調用,改為手工調用cmake 成功。

 Setup的主要功能為收集用戶參數,調用cmake,安裝到python。

於是根據打印信息和程序代碼可定位到調用cmake的地方:

(1)第一處:

 

 

 通過打印信息可以看到,cmake_setup的內容為:

 

 

 其執行失敗的原因為 -G 后面的參數 visual studio 16 2019 -A win32沒有被正確的識別。因此,調整參數改為手動執行,執行成功。

 

(2)第二處:

 

 通過打印信息可以看到,cmake_build的內容為:

cmake --build . --config Release -- /m

 

 

   執行成功。

 

(3)把setup.py中的對cmake的調用注釋掉,再次執行setup.py。安裝成功。

注釋后的setup.py對應行:

 

再次執行setup.py文件:

 

安裝成功:

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM