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