解决 Python 报错:Microsoft Visual C++ 14.0 or greater is required 的方法

在 Windows 系统上使用 Python 安装某些需要编译的第三方库时,可能会遇到如下错误:

error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools"

此错误是由于 Python 在安装某些依赖时,需要使用 C/C++ 编译器进行编译,而 Windows 系统默认不带有这些编译工具。因此,Python 会提示需要安装 Microsoft Visual C++ 14.0 或更高版本。

一、问题原因分析

Python 的某些第三方库,如 lxmlcryptographynumpy 等,可能包含需要编译的 C/C++ 代码。在 Windows 上,默认情况下没有可用的 C/C++ 编译器,所以需要安装 Microsoft Visual C++ 编译工具。

当尝试通过 pip 安装这些库时,如果系统中缺少相应的编译器,Python 就会报错,提示缺少 Microsoft Visual C++ 14.0 或更高版本。

二、解决方案

2.1 安装 Microsoft C++ Build Tools

最直接的解决方法是安装 Microsoft Visual C++ 编译工具。这可以通过安装 Microsoft Visual Studio 的“Build Tools”组件来实现,该组件包含所需的编译工具。

  1. 下载并安装 Build Tools

    • 访问 Microsoft Visual Studio 官网(此处仅作参考,不插入链接)。
    • 点击 "Download Build Tools" 按钮。
    • 下载并运行安装程序。
  2. 安装必需的组件

    • 在安装界面中,选择“C++ Build Tools”工作负载。
    • 勾选“MSVC v142 - VS 2019 C++ x64/x86 build tools”(或者更新的版本,如 v143),以及“Windows 10 SDK”。
    • 点击“安装”按钮开始安装。

    安装 Build Tools

  3. 等待安装完成
    安装完成后,关闭安装程序,并重新尝试使用 pip 安装相关的 Python 包。
  4. 验证安装
    重新运行 pip install 命令,验证问题是否解决。

2.2 安装预编译的 Python 包

如果不想安装 Visual C++ 编译器,另一种解决方案是使用预编译的 Python 包,避免在本地编译代码。很多第三方库在 PyPI 上提供了 Windows 下的预编译二进制包,使用这些包可以跳过编译步骤。

  1. 查找预编译包
    有些库提供了 .whl 格式的预编译包,可以直接下载并安装。例如,可以访问 Unofficial Windows Binaries for Python Extension Packages 网站,查找并下载所需库的 .whl 文件。
  2. 安装预编译包
    下载 .whl 文件后,使用 pip 安装:

    pip install package_name.whl

    这将直接安装预编译的二进制包,避免了本地编译。

2.3 使用 Conda 安装

如果你使用 Anaconda 作为 Python 管理工具,可以通过 Conda 安装这些第三方库。Conda 提供了预编译的库,安装时无需编译步骤,适合 Windows 用户。

  1. 安装库
    使用 Conda 安装相关库,例如:

    conda install -c conda-forge lxml
  2. 检查安装是否成功
    安装完成后,检查是否能够正常导入库,如果一切正常,则无需进行进一步配置。

2.4 更新 pip 和 setuptools

有时,旧版本的 pipsetuptools 可能无法正确处理某些库的安装。更新到最新版本可能会解决部分问题。

  1. 更新 pip

    python -m pip install --upgrade pip
  2. 更新 setuptools

    python -m pip install --upgrade setuptools

四、总结

当 Python 在 Windows 系统上提示 Microsoft Visual C++ 14.0 or greater is required 时,主要解决方法是安装 Microsoft C++ Build Tools 或使用预编译的 Python 包。你也可以选择通过 Conda 安装库,以避免编译步骤。此外,保持 pipsetuptools 的最新版本也有助于避免安装过程中出现的问题。通过这些步骤,能够有效解决 Python 安装库时的编译错误。