M1芯片Mac下Poetry安装gensim失败的问题求助
在M1 macOS的Poetry环境中安装gensim失败的解决方案
问题概述
搭载M1芯片的macOS系统,在Poetry虚拟环境中安装gensim 4.2.0时失败,核心错误为AttributeError: 'dict' object has no attribute '__NUMPY_SETUP__',其他Python包均可正常安装。已尝试重装Poetry、在Poetry环境外正常安装gensim、清理Poetry缓存,均未解决问题。
解决方案
方法1:升级gensim至支持M1的版本
gensim 4.3.0及以上版本提供了适配M1架构的预编译wheel包,可直接避免源码构建冲突:
- 修改项目根目录下的
pyproject.toml,指定gensim版本:
[tool.poetry.dependencies] python = "^3.8" gensim = "^4.3.0"
- 执行更新命令:
poetry update gensim
方法2:提前安装numpy再安装旧版gensim
若必须使用gensim 4.2.0,可先在Poetry环境中安装numpy,规避构建时的依赖逻辑错误:
- 安装numpy:
poetry add numpy
- 安装指定版本的gensim:
poetry add gensim==4.2.0
方法3:强制使用预编译wheel安装旧版gensim
直接指定pip从预编译wheel安装,跳过源码构建步骤:
poetry run pip install gensim==4.2.0 --only-binary :all:
方法4:通过Rosetta 2运行Poetry
若以上方法无效,切换到Rosetta 2兼容模式运行终端:
- 找到「终端」应用,右键选择「显示简介」,勾选「使用Rosetta打开」
- 重启终端,进入项目目录执行安装:
poetry install
原因说明
- 旧版本gensim(如4.2.0)的源码构建脚本在M1的ARM架构下,与Poetry隔离环境中的numpy依赖配置逻辑冲突,导致构建时误将局部变量字典识别为模块对象,触发属性查找错误。
- 系统全局环境安装正常是因为全局环境已存在配置完成的numpy,或pip自动匹配了预编译wheel,而Poetry默认优先选择源码构建旧版本包。
内容的提问来源于stack exchange,提问作者Stupid420
相关产品推荐
相关产品推荐

