Mac M1设备pipenv创建Python虚拟环境架构变为i386问题咨询
Mac M1 设备 pipenv 虚拟环境架构识别异常解决方案
根因说明
该问题由旧版本pipenv依赖的virtualenv组件未适配M1芯片架构导致,叠加系统自带Python 3.8为通用二进制格式,触发罗塞塔2转译后虚拟环境识别架构错误,实际运行在x86_64转译模式下,因此安装numpy、pandas等原生编译的第三方包时会出现mach-o架构不匹配报错。
解决方案
- 升级pipenv到最新版本:2021.5.29为多年前的老旧版本,后续官方已修复M1架构适配问题,执行命令
pip3 install --upgrade pipenv即可完成升级。 - 强制指定arm64架构创建虚拟环境:升级后如果仍出现异常,创建虚拟环境时添加架构指定参数,执行命令
arch -arm64 pipenv --python 3.8即可强制虚拟环境运行在原生arm64架构下。 - 替换系统自带Python:系统自带Python为兼容旧软件做了特殊处理,容易触发转译逻辑,建议通过Homebrew或Python官网安装原生arm64版的Python运行环境。
- 清理错误虚拟环境重建:如果已经生成了架构错误的虚拟环境,先执行
pipenv --rm删除原有环境,再用上述正确方法重新创建即可。
内容的提问来源于stack exchange,提问作者Seewoo Lee
相关产品推荐
相关产品推荐

