Python 自定义程序打包 --- face_recognition 篇

使用 pyinstaller 正常打包使用 face_recognition 的python程序会缺少模块或文件的错误。所以这里介绍一个打包方法解决此问题。

  1. 首先安装打包工具
    pip install pyinstaller
  2. 使用命令直接打包
    # 打包命令
    pyinstaller -F main.py
    
    使用该命令后会生成 .spec 文件(例如 main.spec) 和 dist 以及 build 文件夹。
    
    * dist 文件夹中会存放打包后的文件
  3. 为了包含自定义引用文件需要修改spec文件
    # -*- mode: python ; coding: utf-8 -*-
    import sys
    sys.setrecursionlimit(1000000)
    block_cipher = None
    
    # 手动打包的face_recognition模块,把face_recognition_models 复制到相同目录
    # face_recognition_models 文件夹 一般所在目录在 C:\Users\用户名\AppData\Local\Programs\Python\Python38\Lib\site-packages\face_recognition_models
    
    face_models = [
    ('.\\face_recognition_models\\models\\dlib_face_recognition_resnet_model_v1.dat', './face_recognition_models/models'),
    ('.\\face_recognition_models\\models\\mmod_human_face_detector.dat', './face_recognition_models/models'),
    ('.\\face_recognition_models\\models\\shape_predictor_5_face_landmarks.dat', './face_recognition_models/models'),
    ('.\\face_recognition_models\\models\\shape_predictor_68_face_landmarks.dat', './face_recognition_models/models'),
    ]
    
    
    # 此处填写需要包含的 .py 文件
    a = Analysis(['main.py','test1.py','test2.py'],
                 pathex=[],
                 binaries=face_models,
                 datas=[],
                 hiddenimports=[],
                 hookspath=[],
                 hooksconfig={},
                 runtime_hooks=[],
                 excludes=[],
                 win_no_prefer_redirects=False,
                 win_private_assemblies=False,
                 cipher=block_cipher,
                 noarchive=False)
    pyz = PYZ(a.pure, a.zipped_data,
                 cipher=block_cipher)
    
    exe = EXE(pyz,
              a.scripts,
              a.binaries,
              a.zipfiles,
              a.datas,  
              [],
              name='main',
              debug=False,
              bootloader_ignore_signals=False,
              strip=False,
              upx=True,
              upx_exclude=[],
              runtime_tmpdir=None,
              console=True,
              disable_windowed_traceback=False,
              target_arch=None,
              codesign_identity=None,
              entitlements_file=None )
    

  4. 现在可以使用命令重新打包,注意此时命令与上面有所区别! 
    pyinstaller -F main.spec

  5. 打包完成。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值