Windows下運行gensim提示沒有C編譯器解決方案
在windows下裝gensim跑word2vec的時候遇到了一個坑,記錄下來怕以後忘記。
問題描述:沒有C擴展
最開始用pip安裝gensim後,運行下面代碼會報一個warning。
from gensim.test.utils import common_texts
from gensim.models import Word2Vec
model = Word2Vec(common_texts, size=100, window=5, min_count=1, workers=4)
具體的warning如下,提示沒有C extension會導致運行變慢。
嘗試解決
根據這篇博客 https://www.wandouip.com/t5i254491/ ,我裝了個Visual Studio 2013,但是在編譯的時候仍然顯示沒有C extension,具體如下:
原因是我Visual Studio 2013內置的是MSVC11.0,編譯器版本不夠高。warning中給的鏈接已經失效。同時,我沒有找到【單獨下載MSVC14.0】的方法。
最終解決方案
第一步:安裝C編譯器並配置環境
沒辦法,只能卸載VS2013,重裝了一個VS2019。VS2019內置的是【MSVC14.2】。
安裝好VS2019後,需要設置環境變量,使得在任意路徑下都能直接調用MSVC編譯器cl.exe
。具體地,是在【環境變量-path】下添加cl.exe
的絕對路徑,在我的電腦中路徑如下,注意系統是64位的。
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.22.27905\bin\Hostx64\x64
如果上述步驟沒有問題,那麼在windows終端cmd中輸入cl
應該可以看到以下畫面。
第二步:刪除原本的gensim
確保gensim在C編譯器配好之後再安裝,需要把舊版本先刪除。
可以用pip刪除:
$ pip uninstall gensim
如果安裝的時候有記錄安裝文件,例如logfile.txt
,在linux下可以用如下命令批量刪除,windows暫時不知道。
$ cat logfile.txt| xargs rm
第三步:編譯安裝gensim
在 https://pypi.org/search/?q=gensim 找到最新的gensim。
點進去,選Download files
,找到更多下載選項。
選擇這個壓縮文件下載,下載後解壓,用cmd進入文件夾。
用build
進行編譯。若沒裝好C編譯器,或沒有配好環境變量,這一步可能會報錯。
然後安裝,安裝的時候用--record
將安裝的文件列表錄入logfile.txt
,之後如果想卸載gensim會用到。
$ python setup.py build
$ python setup.py install --record logfile.txt
然後再運行gensim就不會報warning了。