天天看點

64位win7,32位python下安裝libsvm

先說明一下我的各個版本,電腦win7 64位,python 2.7版本32位,已安裝的各種python庫都是32位。

是以我這篇文章針對的是以上配置的情況,如果你是64位系統,64位python,請參考 http://blog.csdn.net/lj695242104/article/details/39500039 中.dll檔案的獲得方法。

我在安裝時,被兩個error困了一整天,一個是“WindowsError: [Error 193] %1 不是有效的 Win32”,另一個是Exception: LIBSVM library not found.

具體原因都出在libsvm.dll檔案上。關鍵是要用正确版本的libsvm.dll檔案替換windows下的libsvm.dll檔案。

接下來,讓我們重頭開始。

#####################################正文###############################################

step1: 從libsvm官網(http://www.csie.ntu.edu.tw/~cjlin/libsvm/)上下載下傳zip壓縮包,在任意目錄下解壓。

cmd下進入python,

<span style="font-size:14px;">import os
os.chdir('..\libsvm\python')
from svmutil import *</span>
           

報錯:Exception: LIBSVM library not found.

原因:zip包裡的windows\libsvm.dll版本不對

step2: 解決辦法:去萬能寶庫(http://www.lfd.uci.edu/~gohlke/pythonlibs/)上下載下傳對應版本的.whl檔案

64位win7,32位python下安裝libsvm
64位win7,32位python下安裝libsvm

cp後的數字表示python版本,win32為32位機,win_amd64為64位機。這裡機器的版本号應和你安裝的python版本号對應,

檢視方法:(1)直接打開IDLE,即可檢視

64位win7,32位python下安裝libsvm
64位win7,32位python下安裝libsvm

(2)運作cmd,輸入python -v

(3)運作cmd,直接輸入python也可

我下載下傳的是libsvm-3.21-cp27-none-win32.whl。

.whl檔案的具體運作方法也比較簡單,隻需要電腦上安裝pip工具,pip的安裝資料就很多了,大家自己查一下即可。

step3: 安裝libsvm-3.21-cp27-none-win32.whl檔案。

具體指令為: pip install ..\..\libsvm-3.21-cp27-none-win32.whl  #..為.whl檔案的存放路徑

至此,符合你版本的libsvm就被存放到你python安裝目錄下的Lib\site-packages檔案夾中,有一個\libsvm-3.21.dist-info檔案夾,你點開會發現裡面都是些說明檔案。

不要着急,重要的的檔案還有庫檔案就在Lib目錄下,仔細找一下libsvm.dll,等會兒會用到。

最後一步,打開你最一開始将libsvm.zip檔案解壓的目錄,其中有一個windows檔案夾

64位win7,32位python下安裝libsvm
64位win7,32位python下安裝libsvm

打開,裡面也有一個libsvm.dll,是不是很眼熟?

64位win7,32位python下安裝libsvm
64位win7,32位python下安裝libsvm
64位win7,32位python下安裝libsvm

沒錯,剛才在Lib目錄下,我們通過.whl檔案也得到一個相同名稱的檔案。

step4: 複制Lib目錄下的libsvm.dll,替換掉windows目錄下的libsvm.dll檔案。

至此,你Libsvm檔案中的libsvm.dll檔案和你電腦的版本号完全對應,再執行一開始的代碼。

from svmutil import *

你會發現終于不報錯了。

如果還找不到,可能是你PYTHON的預設路徑有問題。

解決辦法:(1)進入到你解壓zip檔案的路徑中運作

import os 

os.chdir('..\libsvm\python')  #..為你解壓的libsvm的路徑

(2)直接将該路徑添加到系統預設搜尋路徑中,以後再也不用那麼麻煩了

import sys 

sys.path.append('..\libsvm\python')

#########################後話##########################################

安裝的過程極其艱難,從網上找了大量的資料,但都是隻言片語,兩個錯誤最終還是自己摸索出來了,是以整理出來希望對其他遇到此類問題的朋友有所幫助。

對于很多前輩的安裝文檔中說要将svm.py, svmutil.py檔案移到site-package目錄下,或者将libsvm.dll檔案放到system32目錄中,還有的說要修改系統路徑等等。這些我都進行了嘗試,但并不能解決問題。最後我通過實踐發現這些操作完全可以省略,原因應該是安裝環境不同,有的是XP需要的操作...

是以,在參考的時候還是應該多總結,多整理。靈活變通,善于思考。與君共勉。