无法从“ smart_open”导入名称“ open”

时间:2020-06-03 19:29:13

标签: deep-learning nlp importerror gensim

我正在执行此操作并收到此错误:

from gensim.models import Word2Vec

ImportError: cannot import name 'open' from 'smart_open' (C:\ProgramData\Anaconda3\lib\site-packages\smart_open\__init__.py)

然后我这样做了:

import smart_open
dir(smart_open)

['BZ2File','BytesIO','DEFAULT_ERRORS','IS_PY2','P','PATHLIB_SUPPORT','SSLError','SYSTEM_ENCODING','Uri','__builtins__','__cached__','__doc__','__file__','__loader__','__name__','__package__','__path__','__spec__','boto','codecs','collections','gzip','hdfs','http','importlib','io','logger','logging','os','pathlib','pathlib_module','requests','s3','s3_iter_bucket','six','smart_open','smart_open_hdfs','smart_open_http','smart_open_lib','smart_open_s3','smart_open_webhdfs','sys','urlparse','urlsplit','warnings','webhdfs']

如您所见,其中没有“打开”,那么我该如何解决。我尝试安装其他版本 我也升级了所有版本。

8 个答案:

答案 0 :(得分:14)

我也遇到了同样的错误。我通过将smart_open更新到版本2.0.0来解决了这个问题。

conda安装smart_open == 2.0.0

pip install smart_open == 2.0.0。

答案 1 :(得分:4)

import smart_open
smart_open.open = smart_open.smart_open
from gensim.models import Word2Vec

效果很好。

答案 2 :(得分:1)

当我降级smart_open然后再次升级时,它以某种方式解决了,尽管不知道为什么会发生。

答案 3 :(得分:1)

在 C:\ProgramData\Anaconda3\lib\site-packages\gensim\utils.py 中,我只是将 from smart_open import open 更改为 from smart_open import smart_open 并且它起作用了。

答案 4 :(得分:0)

\lib\site-packages\gensim\utils.py in <module>
     43 from six.moves import range
     44 
---> 45 from smart_open import open
     46 
     47 from multiprocessing import cpu_count

ImportError: cannot import name 'open'

smart_open 2.1.0和gensim 3.8.3对我来说是同样的问题。还在升级之后。

答案 5 :(得分:0)

我遇到了同样的错误,我通过将smart_open升级到最新版本来解决了该错误:

conda update smart_open

pip install --upgrade smart_open

答案 6 :(得分:0)

遇到了同样的问题。

gensim/utils.py:

变化:

from smart_open import open

到:

from smart_open import open

然后 open 替换为文件中的 smart_open,原因:

似乎 smart_open 将函数名称从 open 更改为 smart_open

答案 7 :(得分:0)

开始

conda update smart_open

如果它不起作用,请转到gensim/utils.py

并替换

from smart_open import open 

from smart_open import open