最近想用一下dlib库,发现在win10上如果没有visual studio的话安装python版本有点麻烦,现在记录一下使用minGW自己编译安装自己想要的python版本。
先说明我的操作系统是win10 64位,python版本是3.7.6,cmake版本是3.16.4,minGW版本是8.1。dlib版本为当前的最新版19.19。注意了:dlib从19.9版本开始不再需要提前安装boost了,所以别问我为啥不要装boost。
先分享一下我编译好的dlib的.whl文件,提取码:i81x
dlib.whlpan.baidu.com注意事项
- 路径不要有中文和空格
- 记得编译前先删除build文件夹
ubuntu安装dlib的python版本
ubuntu安装python版本的dlib很简单,直接pip安装即可
pip install dlib
如果提示缺少什么包的话,直接先安装缺少的包再继续pip安装即可,一般没什么问题。
windows编译安装
python3.7如果直接使用pip安装:
pip install dlib
会报错如下:
![382be4dd704d9d4dc9e546ce84cc01c9.png](https://i-blog.csdnimg.cn/blog_migrate/56e2c5a858e9c41268f2f62a60f1b736.jpeg)
在网上查了很多解决办法,发现他们的解决办法要么是安装visual studio让visual studio来成为默认编译器,要么是去https://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml下载别人已经编译好的版本来安装。但是不巧我当时去看别人编译好的版本时并没有Python.7的版本,然后大家都是把Python版本退回到3.6或3.5。
这些个解决办法太笨了!!!我就是要用minGW来编译我的python3.7版本!!
安装minGW。
安装cmake。
minGW和cmake的安装可以参考我的另一篇文章:
小糊糊:Win10+Clion+OpenCV+编译源码zhuanlan.zhihu.com去github上下载最新版的dlib:https://github.com/davisking/dlib,我下载的是当前最新版dlib19.19。下载完成后解压缩:
![5737536f08fe11d925fbf889a5ca3d61.png](https://i-blog.csdnimg.cn/blog_migrate/fd7ef53a72d81405ebe6f6abed6433bf.jpeg)
这个时候打开setup.py文件查找问题,结合上面图片中的报错,发现问题代码出现在149行:
![17b79c3fe2382fd48a2f4377321c7cce.png](https://i-blog.csdnimg.cn/blog_migrate/8fca157f40d0c6d68c0cd0eb334dad2f.jpeg)
当前操作系统为windows时,cmake默认是使用Visual Studio作为C/C++编译器,而我们使用的是minGW的gcc和g++,minGW是没有'-A', 'X64'这些参数的,而且mingw的多线程编译应该是'-j'才对。因此将其修改如下,注释掉'-A', 'X64',改为4线程编译。
if
另外NMake Makefile是visual studio的生成器,我们使用的是mingw,所以我们应该使用mingw的生成器。
删除当前目录下的build文件夹(否则会使用前面的错误编译缓存),在当前dlib目录打开cmd,输入以下命令运行python版本dlib编译安装:其中-G "MinGW Makefiles"表示使用mingw的生成器,bdist_wheel表示编译生成.whl文件。
python setup.py -G "MinGW Makefiles" bdist_wheel
dlib开始顺利编译安装:
![53a2e6db3d6ffbc90ce2bf69ae69f8fa.png](https://i-blog.csdnimg.cn/blog_migrate/4a9eb422e57d2fb82cafe7de969c0db3.jpeg)
![12cf2cecbe4f34143b52ee992cc57291.png](https://i-blog.csdnimg.cn/blog_migrate/15adeaefaffd8a6cd6bd2c5b91b152ed.jpeg)
编译过程会自动检查你的计算机是否有CUDA和显卡,然后会自动选择是否安装CUDA版本的dlib,注意在windows平台上的mingw编译器是不支持CUDA的,所以即使你有显卡和CUDA它也不会安装CUDA版本的dlib,目前windows平台上只有visual studio是支持CUDA的。
等待大概10分钟编译完成:
![061efcf6442db19016c13ab70eedf100.png](https://i-blog.csdnimg.cn/blog_migrate/1add5abde62345792c51fd8d15bdca06.jpeg)
这时在我们的当前目录下多生成了三个文件夹:
![9c4f0f61a7ea31a9b384c3f30c87310a.png](https://i-blog.csdnimg.cn/blog_migrate/c9f1c062860ae5a86377f0f88db78cdf.png)
其中dist文件夹中就是我们非常熟悉的dlib-19.19.99-cp37-cp37m-win_amd64.whl文件了
![43e9ca7a0d0410b8d4c4e01aeffc00cf.png](https://i-blog.csdnimg.cn/blog_migrate/c507a03841127d8d5da070b5e5365844.png)
当前目录打开cmd,输入以下命令安装:
pip install dlib-19.19.99-cp37-cp37m-win_amd64.whl
测试安装:
![4c05d45699fc4aa4f80c6fe38244e114.png](https://i-blog.csdnimg.cn/blog_migrate/34eed99ba9c40e79c70cc718a2933ccd.png)
成功导入了dlib包!!