Skip to content

解决安装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++构建工具(推荐)

这是最直接的解决方案,适用于长期开发需求:

  1. 访问 Microsoft C++ Build Tools 下载页面
  2. 下载并运行安装程序
  3. 选择"Desktop development with C++"工作负载
  4. 在"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文件:

  1. 访问 Unofficial Windows Binaries for Python Extension Packages
  2. 搜索需要的包(如multidictfrozenlist等)
  3. 下载与你的Python版本和系统架构匹配的wheel文件
  4. 使用pip安装下载的wheel文件:
bash
pip install package_name.whl

方法三:使用便携式构建工具

如果磁盘空间有限,可以使用PortableBuildTools

  1. 下载并运行PortableBuildTools
  2. 安装时选择"添加环境变量"选项
  3. 如果使用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

常见问题解答

注意事项

  • 确保安装的构建工具版本与错误提示要求的版本一致
  • 如果使用虚拟环境,可能需要重新激活环境使更改生效
  • 安装构建工具后可能需要重启命令行窗口

推荐方案

对于大多数用户,推荐按以下顺序尝试:

  1. 首先尝试方法二(预编译wheel)
  2. 如果不可用,使用方法一(安装构建工具)
  3. 开发环境中建议直接安装构建工具,避免后续类似问题

通过以上方法,应该能够成功解决"Microsoft Visual C++ 14.0 or greater is required"错误,顺利安装所需的Python包。