Python3.11二进制AI项目程序打包为苹果Mac App(DMG)-应用程序pyinstaller制作流程(AppleSilicon)

众所周知,苹果MacOs系统虽然贵为Unix内核系统,但由于系统不支持N卡,所以如果想在本地跑AI项目,还需要对相关的AI模块进行定制化操作,本次我们演示一下如何将基于Python3.11的AI项目程序打包为MacOS可以直接运行的DMG安装包,可以苹果系统中一键运行AI项目。
MacOs本地部署AI项目
首先确保本地已经安装好 arm 内核的Python3.11程序,可以在Python官网进行下载和安装:python.org
这里以快手团队著名的表情迁移项目 LivePortrait 为例子,首先克隆快手团队官方的项目:
git clone https://github.com/KwaiVGI/LivePortrait.git
进入项目的目录:
cd LivePortrait
安装基于Mac系统的相关依赖:
# for macOS with Apple Silicon users
pip install -r requirements_macOS.txt
随后修改app.py文件,在代码上方加入环境变量的设置:
# coding: utf-8
"""
The entrance of the gradio for human
"""
import os
os.environ["PYTORCH_ENABLE_MPS_FALLBACK"] = "1"
PYTORCH_ENABLE_MPS_FALLBACK=1 这个环境变量用于 PyTorch 中的 MPS(Metal Performance Shaders)加速功能。
MPS 是苹果公司为 macOS 和 iOS 设备提供的图形处理单元 (GPU) 框架,可以加速机器学习模型的训练和推理。
PYTORCH_ENABLE_MPS_FALLBACK=1 表示启用 MPS 回退功能。当 PyTorch 检测到设备支持 MPS 时,它会优先使用 MPS 进行加速。如果 MPS 无法使用,它会回退到 CPU 上运行。
简而言之,设置这个环境变量可以帮助 PyTorch 在支持 MPS 的设备上利用 GPU 加速,并在不支持 MPS 的设备上正常运行。
如果不单独设置这个变量,启用推理的时候会报错。
随后,启动推理页面进行测试:
python3 app.py
注意,由于xpose暂不支持mps推理,所以mac版本不支持动物表情驱动,只支持人物的表情驱动。
如果推理没有问题,那么可以开始进行打包操作了。
MacOs本地打包AI项目
首先,安装pyinstaller库:
pip3 install -U pyinstaller
随后,创建 app.spec 项目配置文件:
# -*- mode: python ; coding: utf-8 -*-
import sys
sys.setrecursionlimit(5000)
from PyInstaller.utils.hooks import collect_data_files
datas = []
datas += collect_data_files('gradio_client')
datas += collect_data_files('gradio')
a = Analysis(
['app.py',
],
pathex=['/Users/liuyue/Downloads/LivePortrait_For_Mac'],
binaries=[],
datas=datas,
hiddenimports=[],
hookspath=[],
hooksconfig={},
runtime_hooks=[],
excludes=[],
noarchive=False,
optimize=0,
module_collection_mode={ 'gradio': 'py'}
)
pyz = PYZ(a.pure)
exe = EXE(
pyz,
a.scripts,
[],
exclude_binaries=True,
name='LivePortrait',
icon='AnyConv.com__paints_logo.icns',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
console=True,
disable_windowed_traceback=False,
argv_emulation=False,
target_arch=None,
codesign_identity=None,
entitlements_file=None,
)
a.datas += Tree('./pretrained_weights', prefix='pretrained_weights')
coll = COLLECT(
exe,
a.binaries,
a.datas,
strip=False,
upx=True,
upx_exclude=[],
name='LivePortrait',
)
这里按照 pyinstaller 官方文档对项目的入口文件,依赖文件,三方目录等进行声明。
接着运行打包命令:
pyinstaller webui.spec
程序返回:
98124 INFO: Rewriting the executable's macOS SDK version (13.1.0) to match the SDK version of the Python library (12.1.0) in order to avoid inconsistent behavior and potential UI issues in the frozen application.
98125 INFO: Re-signing the EXE
98243 INFO: Building EXE from EXE-00.toc completed successfully.
98244 INFO: checking Tree
98244 INFO: Building Tree because Tree-00.toc is non existent
98244 INFO: Building Tree Tree-00.toc
98265 INFO: checking COLLECT
98266 INFO: Building COLLECT because COLLECT-00.toc is non existent
98266 INFO: Building COLLECT COLLECT-00.toc
108930 INFO: Building COLLECT COLLECT-00.toc completed successfully.
代表打包成功,在项目的 dist 目录下会生成可执行程序:

双击 LivePortrait 图标进行测试即可。
至此,程序就打包好了。
MacOs本地构建DMG安装包
随后,运行磁盘工具,新建一个磁盘文件:

注意格式必须是 mac os 扩展(日志式),体积需要大于2G
接着把刚才打包好的项目文件拷贝到新建的磁盘中即可。
随后推出磁盘,点击映像-》转换,对磁盘文件进行压缩。
最后我们得到一个压缩好的DMG安装文件:
➜ mac ll
total 5328720
-rw-r--r--@ 1 liuyue staff 2.5G 8 20 19:49 LivePortrait(已转换).dmg
在别的Mac电脑中双击安装包打开运行即可。
至此我们就走完了整个MacOS的AI项目程序制作流程,最后,奉上打包好的程序文件,与众乡亲同飨:
新版LivePortrait整合包(苹果MacOsAppleSilicon)图片引擎 https://pan.quark.cn/s/53c24cd845b9
Python3.11二进制AI项目程序打包为苹果Mac App(DMG)-应用程序pyinstaller制作流程(AppleSilicon)的更多相关文章
- WinForm程序打包工具InnoSetup使用说明图文教程
WinForm程序打包工具InnoSetup使用说明图文教程 WinForm程序开发测试好了,如果将Debug/Release里面的文件发给客户使用,会让客户觉得你不够专业,但是使用VS自带的打包工具 ...
- 勾勾街——一个专注于免越狱免签名的苹果ios APP打包生成的网站
自涛舅舅研发的“苹果ios APP自助生成系统”上线以来,每天都有大量的用户注册和生成免越狱app,为什么? 因为我们有明显的技术优势,APP不需要上架appstore, 生成APP又不需要企业签名证 ...
- 勾勾街:一个专业的苹果ios app 自助打包的网站,免越狱,免证书签名
众所周知,苹果的APP开发是需要基于MAC环境的,而我们很多的开发者并没有这样的条件,如果单单为发布一款app就去买一台价格昂贵的MAC那成本就太高了! 就算你有一台MAC,也有能力自己开发出一款基于 ...
- 如何将python3.6软件的py文件打包成exe程序
在我们完成一个Python项目或一个程序时,希望将Python的py文件打包成在Windows系统下直接可以运行的exe程序.在浏览网上的资料来看,有利用pyinstaller和cx_Freeze进行 ...
- Windows服务项目打包成安装包(Windows服务)-----------VS2017项目程序打包成.msi或者.exe
VS2017项目程序打包成.msi或者.exe Windows服务项目使用VS2017项目程序打包成.msi或者.exe安装包 项目打包成安装包(Windows服务) 1.安装打包插件:Microso ...
- VS2017项目程序打包成.msi或者.exe
VS2017项目程序打包成.msi或者.exe 1.安装打包插件:Microsoft Visual Studio 2017 Installer Projects 打开vs2017 ,选择 工具 --& ...
- 【Python】将python3.6软件的py文件打包成exe程序
下载pyinstaller pyinstaller 改变图标 pyinstaller -F --icon=my.ico xxx.py 采用命令行操作的办法 在cmd命令行中,输入代码: 首先,前往Py ...
- VS2010安装项目程序打包操作详解
(转自:http://blog.sina.com.cn/s/blog_74f702e60101at62.html) 1.打开VS2010,选择 新建项目---其他项目类型---Visual Studi ...
- Java应用程序项目的打包与发行
Java应用程序项目的打包与发行 这里主要是讲解一下怎样将 Java程序打包成独立运行的exe程序包,以下这种方法应该是最佳的解决方案了.NetDuke的EXE 程序包了是使用这种方案制作的.在 ...
- 在python3.6环境下使用cxfreeze打包程序
在python3.6环境下使用cxfreeze打包程序 环境:python3.6 打包程序:aliens_invasion 原本想使用pyintaller 进行打包,使用pip的安装过程也没有问题,打 ...
随机推荐
- Android 通过odex优化提高首次开机速度
背景 客户反馈说开机时间过长,需要优化. 原文:https://blog.csdn.net/croop520/article/details/73930184 介绍 现在很多Android都需要预装很 ...
- RD/RT格式
一.RD RD长度是8字节,包括Type和Value字段. Type字段:2字节 Value字段:6字节 Type字段的取值决定了Value字段的结构.每种类型的Value字段都由两个部分组成,分别是 ...
- 攻防世界——Misc新手练习区解题总结<4>(11、12题)
第十一题ext3: 方法一:挂载 需要工具:kali虚拟机 下载附件后得到一个linux的系统光盘,我们用kali挂载一下 mount 123 /mnt//123为要挂载的文件名 寻找flag.txt ...
- 实测14us,Linux-RT实时性能及开发案例分享—基于全志T507-H国产平台
本文带来的是基于全志T507-H(硬件平台:创龙科技TLT507-EVM评估板),Linux-RT内核的硬件GPIO输入和输出实时性测试及应用开发案例的分享.本次演示的开发环境如下: Windows开 ...
- jsp+servlet+mysql-----------批量删除
jsp: <div class="result-wrap"> <form action="${pageContext.request.contextPa ...
- aach64架构 ubuntu20 桌面版 编译安装ffmpeg难点总结
[编译安装x264] 这一步基本上没有难点 git clone https://gitee.com/mirrors/x264.git ./configure --enable-shared --ena ...
- vulnhub - LAMPSECURITY: CTF5
vulnhub - LAMPSECURITY: CTF5 信息收集 端口扫描 nmap -sT --min-rate 10000 -p- 192.168.157.164 详细扫描 sudo nmap ...
- 全国DNS服务器IP大全
- useCookie函数:管理SSR环境下的Cookie
title: useCookie函数:管理SSR环境下的Cookie date: 2024/7/13 updated: 2024/7/13 author: cmdragon excerpt: 摘要:本 ...
- 解决方案 | Python中安装pix2tex latex ocr出现报错Cannot mix incompatible Qt library (6.6.2) with this library (6.7.2)
一.问题 Python中安装pix2tex latex ocr出现报错Cannot mix incompatible Qt library (6.6.2) with this library (6.7 ...