项目要用到dlib库,python用的3.8,32位的。
官网没有打包好的whl包,dlib-19.19.0-cp38-cp38-win32.whl
网上找的python3.8 32位的dlib包都是假的,直接64位换了个名。不知道是不是真的没有大神打包过。
按照网上的教程,自己打包一个,踩了不少坑,记录一下。
从github上下载了dlib-19.19源码。
打包主要参考了下面两篇文章。
Windows10下Python配置Dlib - 给给龙 - 博客园 (cnblogs.com)
dlib 19 安装成功 ( winows python38) - eileenwu - 博客园 (cnblogs.com)
主要原理就是安装vs,cmake(32位版),手动打包。
需要找到vs安装路径中的vcvars32.bat,双击执行以下。
然后在项目根目录执行
cmake -G "Visual Studio 17 2022"
如果是vs2019,执行
cmake -G "Visual Studio 16 2019"
我理解上面设置的目的就是指定cmake使用vs作为编译器,vs选择使用32位编译器。
然后可以第一篇教程一步一步编译。
到运行setup.py那一步,报错的话,注释掉subprocess.check_call(cmake_setup, cwd=build_folder)和subprocess.check_call(cmake_build, cwd=build_folder),
在setup.py中输出一下build_folder,输出一下cmake_setup,cmake_build;
print("-======================build_folder", build_folder)
print(cmake_setup)
print(cmake_build)
在build_folder所在的目录,手动执行cmake_setup和cmake_build。
执行过程中应该会报错,应该是说python是32位的,但是编译器是64位的。
根据提示,我删掉了dlib-19.19\build\temp.win32-cpython-38\Release文件夹下的CMakeCache.txt和CMakeFiles。
然后重新执行。就通过了。
正常按照流程,就安装成功了。
其实主要就卡在了32位的python,64位的编译器。
默认已经生成了.egg文件。
安装成功之后,我想能不能做成whl,方便分发和安装。
网上搜索,只要执行python setup.py bdist_wheel就可以了。
如果报错,提示没有bdist_wheel命令,应该是没有安装wheel,先pip install wheel,就可以了。
打包之后,我把whl文件和egg文件发送到另一台电脑上,尝试安装,whl安装成功,egg安装失败。暂时先这样了。
可以把后缀名改成.zip看whl和egg文件中的内容。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。