Windows下運行gensim提示沒有C編譯器解決方案

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了。

在這裏插入圖片描述


Reference

UserWarning: C extension not loaded
gensim: models.word2vec – Word2vec embeddings
如何卸載命令python setup.py install 安裝的包?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章