Python中解决Gensim找不到模块的问题

来源:互联网 发布:皮皮麻将算法 编辑:程序博客网 时间:2024/06/04 20:02
  • 问题描述
  • 解决方案

问题描述

  今天准备使用gensim去训练一个word2vec模型时,结果遇到了一个问题,已经成功安装了gensim,却在导入时遇到了如下的报错。

Traceback (most recent call last):File "<pyshell#3>", line 1, in <module>from gensim import corpora,models,similaritiesFile "gensim\__init__.py", line 6, in <module>from gensim import utils, matutils, interfaces corpora, models, similaritiesFile "gensim\matutils.py", line 21, in <module>import scipy.linalgFile "C:\Python27\lib\site- packages\scipy\linalg\__init__.py", line 159, in <module>from .misc import *File "C:\Python27\lib\site packages\scipy\linalg\misc.py", line 5, in <module>from . import blasFile "C:\Python27\lib\site-packages\scipy\linalg\blas.py", line 145, in <module>from scipy.linalg import _fblasImportError: DLL load failed: 找不到指定的模块。

解决方案

  我在网上搜索了一下这个问题,有不少遇到这个问题的小伙伴,但是解决方案不是很详细,我把我的解决方案详细分享一下吧。这个问题可能由于numpy、scipy、gensim安装版本不兼容的问题,于是卸载了之前装好的numpy、scipy和gensim。因为我装了多版本的python,我选择了在cmd下cd进script之后,使用pip uninstall xxx的命令卸载了这三个库。
  接下来就是重新安装这三个库了,先在cmd中用pip install命令安装了numpy,成功安装。但是在用同样方法安装scipy时却出现了无法安装的问题,查了百度,发现了这一步的解决办法。
  在cmd中,输入python进入python(也可在IDE中进行,由于我有多个版本的python所以我输入的是python3)。然后输入import pip;print(pip.pep425tags.get_supported()),界面上输出当前python的版本信息,如图。

  在www.lfd.uci.edu/%7Egohlke/pythonlibs/上找到与上述版本信息相对应的whl文件,下载到本地。注意上图中标注的版本信息,应从网页上下载对应的版本为:XXXX-cp35-cp35m-win_amd64.whl在此处,scipy对应的安装包为scipy‑0.19.1‑cp35‑cp35m‑win_amd64.whl(请替换为你的可安装版本)。注意,scipy依赖于numpy+mkl,安装scipy前需要先安装好numpy+mkl。我下载的numpy+mkl版本是numpy-1.13.3+mkl-cp35-cp35m-win_amd64.whl,这个文件有点大(相对于scipy的whl而言),大概200MB左右。
  最后,cd到下载scipy和numpy+mkl的目录下,使用了python3 -m pip install scipy ‑0.19.1‑cp35‑cp35m‑win_amd64.whl和python3 -m pip install numpy -1.13.3+mkl-cp35-cp35m-win_amd64.whl(还是因为我有几个版本Python的缘故,我是装在Python3.5上的,所以要根据自身情况选择python -m还是其他,后面的XXX.whl要换成自己下载的版本)。到这一步,numpy和scipy应该就安装成功了。
  革命胜利前的最后一步,在cmd中cd到script中,然后pip install gensim,不出意外此时此刻,numpy、scipy、gensim就都OK了。可以用from gensim.models import word2vec做一个test(前提是还需要装一个机器学习库–sklearn,这里就不再赘述了)。
  附:随着上述几个库的安装和测试完毕,我心心恋恋的word2vec模型,也终于可以训练了~如图(此时此刻开心得像个三百斤的胖纸,也希望大家能利用我的分享解决自己遇到的问题)。
这里写图片描述