文章目录
- 问题背景
- 问题一: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。这里下载免费的社区版本即可。
2. 安装Microsoft Visual Studio
安装时需要勾选的选项:
- 选择"工作负载"
- Windows一栏勾选 “使用 C++ 的桌面开发”
- Web和云一栏勾选Python开发
如下图红框所示:
注意:要下载的文件比较大,有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了。