如何在PyInstaller打包过程中集成Visual Studio Build Tools依赖
方案1:优先尝试PyInstaller内置所有依赖
- 先准备干净的Python 3运行环境,完整安装cvxpy、你的算法所需的所有依赖库,确认本地运行你的算法代码没有任何报错
- 执行打包命令时添加
--collect-all cvxpy参数,强制PyInstaller检索cvxpy依赖的所有动态库、资源文件,避免漏捡MSVC运行时相关组件,示例打包命令如下:pyinstaller -F --collect-all cvxpy your_main_script.py - 打包完成后,找一台没有安装Python、Visual Studio Build Tools的测试设备直接运行生成的exe文件,若正常运行即可直接交付使用
- 如果运行时报缺少
msvcp140.dll、vcruntime140.dll这类MSVC运行时文件的错误,直接去你本地开发机的C:\Windows\System32目录(32位程序对应C:\Windows\SysWOW64)找到对应dll文件,手动复制到PyInstaller输出的程序目录下再次测试即可,不需要额外安装完整的Build Tools组件
方案2:PyInstaller方案验证不通过时使用Inno Setup制作安装包
- 不需要从Visual Studio Build Tools单独提取组件,直接使用微软官方提供的独立MSVC运行时安装包即可,对应64位程序用vc_redist.x64.exe、32位程序用vc_redist.x86.exe
- 编辑Inno Setup脚本时,在[Files]段添加MSVC运行时安装包的本地路径,设置为临时解压属性
- 在[Run]段添加执行规则,优先静默安装MSVC运行时,添加参数
/quiet /norestart即可实现后台无感知安装,不会弹出额外安装窗口 - 最后把PyInstaller打包好的你的程序所有文件加入Inno Setup的打包列表,编译后生成的单个安装包就可以直接交付,用户双击安装完成即可使用,不需要手动安装任何前置依赖
内容的提问来源于stack exchange,提问作者pepermatt94
相关产品推荐
相关产品推荐

