导入 Gensim 时出现“导入错误:无法从 'scipy.linalg' 导入名称 'triu'”

问题描述 投票:0回答:2

我正在尝试使用 Gensim,但运行

import gensim
会引发此错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.10/dist-packages/gensim/__init__.py", line 11, in <module>
    from gensim import parsing, corpora, matutils, interfaces, models, similarities, utils  # noqa:F401
  File "/usr/local/lib/python3.10/dist-packages/gensim/corpora/__init__.py", line 6, in <module>
    from .indexedcorpus import IndexedCorpus  # noqa:F401 must appear before the other classes
  File "/usr/local/lib/python3.10/dist-packages/gensim/corpora/indexedcorpus.py", line 14, in <module>
    from gensim import interfaces, utils
  File "/usr/local/lib/python3.10/dist-packages/gensim/interfaces.py", line 19, in <module>
    from gensim import utils, matutils
  File "/usr/local/lib/python3.10/dist-packages/gensim/matutils.py", line 20, in <module>
    from scipy.linalg import get_blas_funcs, triu
ImportError: cannot import name 'triu' from 'scipy.linalg' (/usr/local/lib/python3.10/dist-packages/scipy/linalg/__init__.py)

为什么会发生这种情况以及如何解决?

python scipy gensim
2个回答
33
投票

我发现了问题。

The scipy.linalg functions tri, triu & tril are deprecated and will be removed in SciPy 1.13.

所以,我安装了 scipy v1.10.1 而不是最新版本,并且运行良好。

pip install scipy==1.10.1

18
投票

我无法使用 scipy v1.10.1,但 1.12 似乎也解决了这个问题:

pip install scipy==1.12 
© www.soinside.com 2019 - 2024. All rights reserved.