【Python】安裝python包時遇到"error: Microsoft Visual C++ 9.0 is required"的簡答


簡答

在Windows下用pip安裝Scrapy報如下錯誤,

error: Microsoft Visual C++ 9.0 is required (Unable to find vcvarsall.bat). Get it from http://aka.ms/vcpython27

打開http://aka.ms/vcpython27會跳轉到http://www.microsoft.com/en-us/download/confirmation.aspx?id=44266

將安裝包(VCForPython27.msi, 83Mb)下載回來安裝即可解決問題

Microsoft Visual C++ Compiler for Python 2.7

更合理的解決辦法:

Python通過pip或者源碼來安裝某些模塊時,這些模塊包含有c/c++源碼,安裝過程會調用本地的編譯器編譯這些代碼。在Windows平台下我安裝時候的錯誤消息是“error: Microsoft Visual C++ 9.0 is required (Unable to find vcvarsall.bat). Get it from http://aka.ms/vcpython27” 可以看出錯誤是由於沒有找到該vc版本,對應的是vs2008,當然一種解決方法是安裝該版本,但我已經安裝了vs2015,所以我就需要修改下默認的這種配置。

解決方案

方法一:

  • 首先確定自己安裝vs的版本號,可以通過查看注冊表,在HKLM\Software\Wow6432Node\Microsoft\VisualStudio\下,如圖 
    這里寫圖片描述

    會有多個數字卡頭的子項,只有安裝的會有對應的InstallDir項,可以看出我安裝的vs版本是14.0;

  • 打開 “python安裝目錄/Lib/distutilsmsvc9compiler.py”文件,找到find_vcvarsall函數,在該函數開頭添加 
    version =上面的版本號, 即添加內容為 “VERSION = 14.0”, 這樣就可以使用了

def find_vcvarsall(version): """Find the vcvarsall.bat file At first it tries to find the productdir of VS 2008 in the registry. If that fails it falls back to the VS90COMNTOOLS env var. """ version = 14.0 ##添加這行 vsbase = VS_BASE % version ... ... 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

方法二: 
這種方法更簡單,在環境變量中添加項 VS90COMNTOOLS ,值為 “VS安裝路徑\Common7\Tools”, 如圖 
這里寫圖片描述

重新打開命令行程序就可以使用了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM