Windows下pip安装gensim失败,编译numpy遇C2131错误
解决Gensim安装时Numpy编译C2131错误的方案
问题本质
你遇到的error C2131: expression did not evaluate to a constant是因为VS2019的MSVC 14.27版本对C++17的constexpr特性支持不完善,而Python3.13依赖的Numpy版本使用了这类特性,导致编译失败。安装Gensim时,pip会尝试构建或重新编译依赖的Numpy,触发了这个编译器兼容性问题。
解决方案(按推荐优先级排序)
1. 直接使用预编译二进制包(最快解决)
跳过编译过程,安装现成的wheel包:
- 先更新pip到最新版本:
python -m pip install --upgrade pip - 卸载现有Numpy,安装预编译版本:
pip uninstall numpy -y pip install numpy --only-binary :all: - 再安装Gensim:
pip install gensim --only-binary :all:
2. 升级Visual Studio编译器
将VS2019升级到VS2022(MSVC 14.30+版本),它对C++17特性的支持更完善:
- 下载安装VS2022,勾选「使用C++的桌面开发」工作负载,确保安装最新的MSVC工具集。
- 打开VS2022的「开发者命令提示符」,在该环境下执行
pip install gensim,让编译器环境正确加载。
3. 降级Python版本
Python3.13属于较新的版本,部分依赖包的兼容性还在完善,切换到Python3.12或更低的稳定版本:
- 卸载Python3.13,安装Python3.12。
- 重新安装所需依赖:
此时会直接安装预编译好的包,无需编译。pip install numpy scipy smart_open gensim
内容的提问来源于stack exchange,提问作者Aviv
相关产品推荐
相关产品推荐

