构建 PyMNN
🔧 编译 MNN 前的准备工作
请参考原文:编译MNN
📦 构建 PyMNN
✅ 本地安装
cd /path/to/MNN/pymnn/pip_package# 构建依赖
python build_deps.py {MNN依赖包组合}
# 示例:python build_deps.py "cuda,render,no_sse"# 安装 PyMNN
python setup.py install --version {MNN版本} --deps {MNN依赖包组合}
# 示例:python setup.py install --version 2.7.0 --deps "cuda,render,no_sse"
支持依赖项包括:
internal
,cuda
,trt
,cuda_tune
,opencl
,vulkan
,render
,no_sse
,torch
等任意组合。
📦 构建 Python Wheel 包
🐧 Linux 构建
# 构建仅包含 CPU 后端的 wheel 包
./package_scripts/linux/build_whl.sh -v {MNN版本} -o MNN-CPU/py_whl# 构建 CPU + OpenCL 后端的 wheel 包
./package_scripts/linux/build_whl.sh -v {MNN版本} -o MNN-CPU-OPENCL/py_whl -b
🍎 macOS 构建
# 仅包含 CPU 后端(支持多个 Python 版本)
./package_scripts/mac/build_whl.sh -v {MNN版本} -o MNN-CPU/py_whl -p py27,py37,py38,py39# CPU + OpenCL 后端
./package_scripts/mac/build_whl.sh -v {MNN版本} -o MNN-CPU/py_whl -p py27,py37,py38,py39 -b
🪟 Windows 构建
# CPU 64 位
powershell .\package_scripts\win\build_whl.ps1 -version {MNN版本} -path MNN-CPU/py_whl/x64 -pyenvs "py27,py37,py38,py39"# CPU 32 位
powershell .\package_scripts\win\build_whl.ps1 -version {MNN版本} -x86 -path MNN-CPU/py_whl/x86 -pyenvs "py27-win32,py37-win32,py38-win32,py39-win32"# CPU + OpenCL 64 位
.\package_scripts\win\build_whl.ps1 -version {MNN版本} -backends opencl -path MNN-CPU-OPENCL/py_whl/x64 -pyenvs "py27,py37,py38,py39"# CPU + OpenCL 32 位
.\package_scripts\win\build_whl.ps1 -version {MNN版本} -backends opencl -x86 -path MNN-CPU-OPENCL/py_whl/x86 -pyenvs "py27-win32,py37-win32,py38-win32,py39-win32"# CPU + Vulkan 64 位
.\package_scripts\win\build_whl.ps1 -version {MNN版本} -backends vulkan -path MNN-CPU-OPENCL/py_whl/x64 -pyenvs "py27,py37,py38,py39"# CPU + Vulkan 32 位
.\package_scripts\win\build_whl.ps1 -version {MNN版本} -backends vulkan -x86 -path MNN-CPU-OPENCL/py_whl/x86 -pyenvs "py27-win32,py37-win32,py38-win32,py39-win32"# CPU + OpenCL + Vulkan 64 位
.\package_scripts\win\build_whl.ps1 -version {MNN版本} -backends "opencl,vulkan" -path MNN-CPU-OPENCL/py_whl/x64 -pyenvs "py27,py37,py38,py39"# CPU + OpenCL + Vulkan 32 位
.\package_scripts\win\build_whl.ps1 -version {MNN版本} -backends "opencl,vulkan" -x86 -path MNN-CPU-OPENCL/py_whl/x86 -pyenvs "py27-win32,py37-win32,py38-win32,py39-win32"
如需我帮助你生成一键构建脚本、适配 CI/CD、或写一个配置文件方便管理参数,也可以告诉我!