You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

生成Windows可执行文件后运行报错:ImportError: No module named face_recognition

解决Windows打包人脸识别程序时的ImportError问题

这是跨平台Python程序打包时非常常见的坑——你在Ubuntu上装的dlib和face_recognition都是针对Linux编译的,和Windows环境完全不兼容,而且打包工具很可能没把这些依赖正确打包进可执行文件里。给你几个一步步解决的方案:

1. 先在Windows环境下重现可运行的程序

因为带C扩展的库(比如dlib)是和系统架构绑定的,Ubuntu上的安装包在Windows上完全用不了,所以必须先在Windows里重新搭环境:

  • 安装和Ubuntu版本一致的Python(比如Python 3.6,毕竟Ubuntu 16.04默认的Python版本偏老,版本一致能减少兼容问题)
  • 安装dlib:别自己编译,直接用预编译的wheel包,执行 pip install dlib-bin
  • 接着安装其他依赖:pip install face_recognition numpy
  • 先在Windows命令行里运行你的Python脚本,确认能正常输出预期结果,再进行打包操作——这一步非常关键,先确保脚本本身在Windows能跑,再解决打包问题。

2. 用PyInstaller打包时补全依赖(最常用方案)

如果用PyInstaller打包,默认可能会漏掉face_recognition这类带扩展的库,或者没打包它依赖的模型文件:

  • 先尝试基础打包命令:pyinstaller --onefile your_script.py
  • 如果还是报ImportError,显式指定隐藏导入的依赖:pyinstaller --onefile --hidden-import face_recognition --hidden-import face_recognition_models your_script.py
  • 另外,face_recognition需要预训练的模型文件,PyInstaller有时候不会自动打包这些文件。你可以找到Windows下模型的路径(一般在Python安装目录\Lib\site-packages\face_recognition_models\models),要么手动把整个models文件夹复制到生成的exe同目录下,要么用--add-data参数打包进去:
    pyinstaller --onefile --add-data "C:\PythonXX\Lib\site-packages\face_recognition_models\models;models" your_script.py
    
    注意Windows下--add-data的路径分隔用分号;,前面是源路径,后面是打包后的目标路径。

3. 尝试其他打包工具

如果PyInstaller始终解决不了问题,可以换用对C扩展库支持更好的工具:

  • cx_Freeze:需要写一个setup.py配置文件,明确列出所有依赖模块,包括face_recognition和dlib,然后用命令生成可执行文件
  • PyOxidizer:它会把Python解释器和依赖一起打包成单个二进制文件,对带C扩展的库兼容性更好,不过配置相对复杂一点

内容的提问来源于stack exchange,提问作者Sachin Km

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:52:13