解决安装Python包时"Microsoft Visual C++ 14.0 or greater is required"错误
当在Windows系统上安装某些Python包时,经常会遇到"Microsoft Visual C++ 14.0 or greater is required"的错误。这个错误是因为某些Python包包含需要编译的C++扩展,而系统缺少相应的编译工具。
问题原因
Python包通常以两种形式分发:
- 预编译的wheel文件(
.whl
) - 源代码(需要本地编译)
当预编译的wheel文件不适用于你的Python版本或系统架构时,pip会尝试从源代码编译安装,这时就需要Microsoft Visual C++构建工具。
解决方案
方法一:安装Visual C++构建工具(推荐)
这是最直接的解决方案,适用于长期开发需求:
- 访问 Microsoft C++ Build Tools 下载页面
- 下载并运行安装程序
- 选择"Desktop development with C++"工作负载
- 在"Individual Components"中确保选择:
- Windows 10 SDK
- C++ x64/x86 build tools
自动安装
可以使用命令行静默安装:
bash
vs_buildtools.exe --norestart --passive --downloadThenInstall --includeRecommended --add Microsoft.VisualStudio.Workload.NativeDesktop --add Microsoft.VisualStudio.Workload.VCTools --add Microsoft.VisualStudio.Workload.MSBuildTools
方法二:使用预编译的wheel文件
如果不想安装庞大的构建工具(约5-6GB),可以从第三方获取预编译的wheel文件:
- 访问 Unofficial Windows Binaries for Python Extension Packages
- 搜索需要的包(如
multidict
、frozenlist
等) - 下载与你的Python版本和系统架构匹配的wheel文件
- 使用pip安装下载的wheel文件:
bash
pip install package_name.whl
方法三:使用便携式构建工具
如果磁盘空间有限,可以使用PortableBuildTools:
- 下载并运行PortableBuildTools
- 安装时选择"添加环境变量"选项
- 如果使用conda环境,需要手动添加新环境变量到conda环境
方法四:降级Python版本
某些包可能只对较早的Python版本提供预编译wheel:
bash
# 创建并激活Python 3.9环境
conda create -n py39 python=3.9
conda activate py39
# 然后尝试安装包
pip install package_name
方法五:使用Conda替代pip
Conda通常会自动处理依赖关系,包括C++运行时库:
bash
# 尝试使用conda安装
conda install -c conda-forge package_name
常见问题解答
注意事项
- 确保安装的构建工具版本与错误提示要求的版本一致
- 如果使用虚拟环境,可能需要重新激活环境使更改生效
- 安装构建工具后可能需要重启命令行窗口
推荐方案
对于大多数用户,推荐按以下顺序尝试:
- 首先尝试方法二(预编译wheel)
- 如果不可用,使用方法一(安装构建工具)
- 开发环境中建议直接安装构建工具,避免后续类似问题
通过以上方法,应该能够成功解决"Microsoft Visual C++ 14.0 or greater is required"错误,顺利安装所需的Python包。