文章目录

  • 问题背景
  • 问题一:error: Microsoft Visual C++ 14.0 is required
  • 1. 报错信息
  • 2. 原因分析
  • 3. 解决方法
  • 1. 下载Microsoft Visual Studio
  • 2. 安装Microsoft Visual Studio
  • 问题二:ImportError: DLL load failed
  • 1. 报错信息
  • 2. 解决方法
  • 问题三:“sasl/sasl.h”: No such file or directory
  • 1. 报错信息
  • 2. 解决方法
  • 参考


问题背景

这个问题是在Windows7上安装pyhive时遇到的。因为安装 pyhive 要依赖 sasl 模块,在pip install sasl 时报错 “缺少Microsoft Visual C++编译器” 。
 

下面即是在执行 pip install sasl 时,出现的一系列问题,以及相应的解决方法。

问题一:error: Microsoft Visual C++ 14.0 is required

1. 报错信息

error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": 
https://visualstudio.microsoft.com/downloads.

2. 原因分析

虽然Python是一种解释性语言,但是在某些情况下可能需要安装Windows C++编译器。与Linux不同的是,Windows编译器在默认情况下是不包含在操作系统中的。这就需要我们自己安装了。微软提供了官方的C++编译器Visual C++,它是和Visual Studio捆绑在一起的。那么我们最终选择一个包含Visual C++ 14.0的Visual Studio来安装,这里选择的是Visual Studio 2017的版本。

注意:在安装Visual Studio 2017之前,建议先更新 pip install --upgrade setuptools。官方说是它包含兼容性的改进和添加编译器的自动使用。

3. 解决方法

解决方案就是安装Microsoft Visual Studio。

1. 下载Microsoft Visual Studio

官方下载地址:https://docs.microsoft.com/zh-cn/visualstudio/releasenotes/vs2017-relnotes#15.9.14。这里下载免费的社区版本即可。

hive依赖maven hive依赖于_解决方法

2. 安装Microsoft Visual Studio

安装时需要勾选的选项:

  • 选择"工作负载"
  • Windows一栏勾选 “使用 C++ 的桌面开发”
  • Web和云一栏勾选Python开发

如下图红框所示:

hive依赖maven hive依赖于_Python_02


注意:要下载的文件比较大,有7G左右,可能耗时较长。

其他步骤默认即可。
 

问题二:ImportError: DLL load failed

上面的问题解决之后,再次安装sasl时可能会继续遇到第二个问题。

1. 报错信息

比如会出现下面的报错信息:

ImportError: DLL load failed: 找不到指定的程序。

2. 解决方法

用Python安装根目录下的 python3.dll 文件替换PyCharm工程\venv\Scripts目录下的同名文件。具体原因不太明确,可能是要加载的DLL文件不匹配?
 

问题三:“sasl/sasl.h”: No such file or directory

第二个问题解决之后,继续执行pip install sasl,可能又会遇到第三个问题:

1. 报错信息

..\pip-install-wrsldjm1\sasl\sasl\saslwrapper.h(22): fatal error C1083: 无法打开包括文件: “sasl/sasl.h”: No such file or directory

2. 解决方法

这个问题是因为缺少一个sasl文件。

  • 下载一个对应你所使用的Python版本和Windows版本的sasl文件:例如, sasl‑0.2.1‑cp36‑cp36m‑win_amd64.whl,它对应的Python 版本为3.6,对应的Windows系统为64位。
  • 安装执行pip install sasl-0.2.1-cp37-cp37m-win_amd64.whl

解决完上面这几个问题之后,应该就可以成功的安装sasl了。