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 安装的包?

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