运行MediaPipe iOS Demo时Yarn安装失败的版本适配问题咨询
解决MediaPipe iOS Demo中Yarn版本不匹配的问题
问题本质
你碰到的是环境隔离引发的版本冲突——MediaPipe的构建脚本大概率在自身的隔离环境(比如项目本地安装的Yarn、或是通过nvm/volta这类版本管理工具切换的环境)里调用了v1.22.11,而非你全局安装的v1.22.19。这类情况在对依赖工具版本有严格约束的项目里很常见,Google系项目尤其如此。
可行解决办法
1. 强制调用全局Yarn版本
直接让构建脚本使用你全局安装的Yarn:
- 找到MediaPipe项目里负责Yarn安装的脚本(一般是
setup.sh或ios/build.sh这类文件) - 先用
which yarn获取全局Yarn的绝对路径,比如输出可能是/usr/local/bin/yarn - 把脚本里的
yarn install替换成绝对路径调用,比如/usr/local/bin/yarn install
2. 用项目配置锁定Yarn版本
不想改脚本的话,可通过Yarn的版本锁定功能强制项目用v1.22.19:
- 在项目根目录创建
.yarnrc文件,写入:yarn-path: "/usr/local/bin/yarn" - 或者直接运行命令生成锁定配置:
这个命令会在项目里生成yarn policies set-version 1.22.19.yarnrc和.yarn目录,强制项目使用指定版本。
3. 排查版本管理工具的干扰
如果你本地装了nvm、volta或asdf,可能会被项目的.nvmrc/.volta配置切换到旧Node环境,连带Yarn版本也变了:
- 检查项目根目录有没有
.nvmrc文件,看指定的Node版本和你全局的是否一致 - 终端里运行
node -v确认当前Node版本,再运行yarn -v看对应环境的Yarn版本,不一致的话切换到全局Node版本即可
验证步骤
修改完成后,在项目根目录运行:
yarn -v
确认输出是1.22.19,再重新执行MediaPipe的构建命令,应该就能解决版本不匹配的报错。
内容的提问来源于stack exchange,提问作者Cool Cat
相关产品推荐
相关产品推荐

