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的安装过程也没有问题,打 ...
随机推荐
- 高通lk:配置与使用i2c
高通lk:配置与使用i2c 以msm8909为例. 背景 在lk中要去驱动一个aw9523的ic来控制指示灯. 但是现在对应的i2c没有打开.因此需要进行处理. 步骤 找到I2C对应的ID与句柄 参考 ...
- Xilinx-HDF的文件内容
Xilinx-HDF文件 原文:分享:HDF文件的更多用途 Xilnx Vivado能导出HDF文件,给Xilnx SDK创建软件工程.HDF文件的还可以有更多用途. HDF文件是一个zip文件,可以 ...
- QT学习:01 工程文件详解
--- title: framework-cpp-qt-01-工程文件详解 EntryName: framework-cpp-qt-01-project-file date: 2020-04-08 1 ...
- VS图片
- P8571 题解
既然字符串的总长一定,不妨对于每个询问中的 \(s_k\) 的长度根号分治,假定分治阈值为 \(B\).下面令 \(L\) 为所有串长度总和. 对于长度大于 \(B\) 的字符串,这样的不同字符串至多 ...
- Java 集合框架迭代器(Iterator)
什么是迭代器 使用循环遍历集合 普通for循环 for(int i=0;i<10;i++){} 增强for循环 for(String str:list){} 什么是迭代器Iterator Ite ...
- SpringBoot实战:轻松实现接口数据脱敏
引言 在现代的互联网应用中,数据安全和隐私保护变得越来越重要.尤其是在接口返回数据时,如何有效地对敏感数据进行脱敏处理,是每个开发者都需要关注的问题.本文将通过一个简单的Spring Boot项目,介 ...
- 常用IDE(开发工具)
一.开发工具 Visual Studio Microsoft Visual Studio(简称VS)是微软公司提供的IDE,可以在VS上编写C.C++.C#等多种语言的项目,所写的代码适用于微软支持的 ...
- oeasy教您玩转vim - 58 - # 块可视化
块可视化编辑 回忆上节课内容 上次我们了解到行可视模式 行可视模式 V 也可配合各种motion o切换首尾 选区的开头和结尾是mark标记 开头是 '< 结尾是 '> 可以在选区内进 ...
- OI生涯回忆&退役之后
一个人的命运啊,当然要靠自我奋斗,但是也要考虑到历史的进程 --<庄子·秋水> 好吧,现在是2024年7月24日,我现在正坐在某编程机构的办公室电脑旁,写下这些文字,是啊,我已经退役将近两 ...