1. 程式人生 > >python3.5 Unable to find vcvarsall.bat

python3.5 Unable to find vcvarsall.bat

在做cs231n assignment2時,使用im2col遇到了這個問題,網上查詢了很多解決方法後也沒解決,於是參考了下給出了自己的解決方案,在知乎回答了這個問題,直接複製過來吧:

搞了半天終於解決了。。。許多方法都是直接安裝對應的vs版本,但是我完成這一步後還是提示錯誤,於是看了下程式碼,原因是它是通過登錄檔來獲得檔案路徑的,但是vs在安裝後好像沒有註冊該路徑???於是自己把路徑貼上複製過去了,以下是步驟:

1.下載對應的vs版本

檢視編譯版本


對照下載安裝:

MSC v.1000 -> Visual C++ 4.x
MSC v.1100 -> Visual C++ 5
MSC v.1200 -> Visual C++ 6
MSC v.1300 -> Visual C++ .NET
MSC v.1310 -> Visual C++ .NET 2003
MSC v.1400 -> Visual C++ 2005 (8.0)
MSC v.1500 -> Visual C++ 2008 (9.0)
MSC v.1600 -> Visual C++ 2010 (10.0)
MSC v.1700 -> Visual C++ 2012 (11.0)
MSC v.1800 -> Visual C++ 2013 (12.0)
MSC v.1900 -> Visual C++ 2015 (14.0)
MSC v.1910 -> Visual C++ 2017 (15.0)

安裝勾選時注意下,否則根本沒有vcvarsall.bat檔案

2.直接修改程式碼中的路徑

找到這個檔案,我用的Anaconda,路徑為C:\Program Files\Anaconda3\Lib\distutils\


開啟編輯,仔細閱讀_find_vcvarsall(plat_spec)函式你會發現它的檔案路徑是通過登錄檔獲得的,但是照著路徑看了下注冊表,emmm,根本沒有。那既然只是個路徑,自己改不就好了嗎,我是python3.5,對應下載了vs2015,檔案路徑是C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat,於是註釋掉程式碼中獲取路徑的部分,加上這句,儲存,大功告成。