做畢設時又碰到了一個難題,使用結巴分詞和analyse後沒法正常打包程序。使用py2exe得不到.exe文件,使用PyInstaller程序報錯。
報錯信息如下(圖片來自文獻1):
後來參考了文獻1和文獻2後知道原來是因爲import jieba需要用到dict.txt,而打包後的程序找不到dict.txt的路徑了。解決方法如下:
在你的代碼中寫如下三句:import jieba後馬上設置字典的路徑進行初始化,這裏用相對路徑。(必須緊跟在import語句後面)
import jieba
jieba.set_dictionary("./dict.txt")
jieba.initialize()
然後用PyInstaller打包好程序後,把dict.txt放在程序所在目錄就可以了。
要是你只用了結巴分詞的分詞模塊,那上面就可以解決問題了,但如果你還用了結巴分詞裏面的analyse模塊,用到了計算df-idf值的功能,那還需要把idf.txt 的路徑給改了。和上面一樣的方法,寫下面幾行代碼:
from jieba import analyse
jieba.analyse.set_idf_path("./idf.txt")
然後比上面麻煩一點的是,不僅需要吧idf.txt放在程序所在目錄,而且還要在程序所在目錄創建一個文件夾“jieba”, 在此文件夾裏也放上idf.txt, 就OK了。不過我也不知道爲啥要放兩個。
參考文獻:
1. http://www.cnblogs.com/chaosimple/p/4101596.html
2. https://github.com/fxsjy/jieba/issues/35