pyhive依賴模塊sasl安裝(pip install sasl)報錯Microsoft Visual C++ 14.0 is required

問題背景

這個問題是在Windows7上安裝pyhive時遇到的。因爲安裝 pyhive 要依賴 sasl 模塊,在pip install sasl 時報錯 “缺少Microsoft Visual C++編譯器” 。
 
以下是在執行 pip install sasl 時出現的一系列問題以及解決方法

問題一

報錯信息:
error: Microsoft Visual C++ 14.0 is required. Get it with “Microsoft Visual C++ Build Tools”:
https://visualstudio.microsoft.com/downloads.

原因:
雖然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。官方說是它包含兼容性的改進和添加編譯器的自動使用。

官方下載地址:https://docs.microsoft.com/zh-cn/visualstudio/releasenotes/vs2017-relnotes#15.9.14 。 打開網址後,下載免費的社區版本即可。下載
安裝時,注意要勾選的選項,“工作負載” ——> Windows一欄勾選 “使用 C++ 的桌面開發” 、Web和雲一欄勾選Python開發,如下:
勾選要下載的文件比較大,有7G左右,耗時較長。其他步驟默認即可。
 
 

問題二

問題一處理之後,再次安裝sasl時,你可能會繼續遇到第二個問題:ImportError: DLL load failed: 找不到指定的程序。

解決方法:用Python安裝根目錄下的 python3.dll 文件替換PyCharm工程\venv\Scripts目錄下的同名文件。具體原因不太明確,可能是要加載的DLL文件不不匹配?
 
 

問題三

第二個問題解決之後,繼續執行pip install sasl,你可能又會遇到第三個問題:…\pip-install-wrsldjm1\sasl\sasl\saslwrapper.h(22): fatal error C1083: 無法打開包括文件: “sasl/sasl.h”: No such file or directory

解決方法:到這個網站 https://www.lfd.uci.edu/~gohlke/pythonlibs/#sasl下載對應你所用Python版本和Windows版本的文件。比如我下載的是 sasl‑0.2.1‑cp36‑cp36m‑win_amd64.whl,對應我用的Python 3.6和64位的Windows系統。
下載好之後,執行pip install sasl-0.2.1-cp37-cp37m-win_amd64.whl
 
 
最後,解決完這幾個問題,就可以成功的安裝sasl了。
 
 

參考

  1. WindowsCompilers
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章