You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

导入Gensim时出现ImportError:无法从scipy.linalg导入triu

问题:导入Gensim时触发ImportError: cannot import name 'triu' from 'scipy.linalg'

执行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)

错误原因

这个错误源于Gensim与SciPy版本不兼容:

  • 较新的SciPy版本(如1.10.0及以上)中,triu函数从scipy.linalg模块迁移到了scipy.linalg._special_matrices内部模块。
  • 当前安装的Gensim版本仍在尝试从scipy.linalg导入triu,因此触发导入失败。

解决方法

方法1:升级Gensim到兼容版本

更新Gensim至支持新SciPy版本的最新版,执行命令:

pip install --upgrade gensim

方法2:降级SciPy到兼容版本

若暂时不想升级Gensim,可将SciPy降级到triu仍在scipy.linalg中的版本(如1.9.x系列),执行命令:

pip install scipy==1.9.3

方法3:使用虚拟环境隔离依赖

操作前激活虚拟环境,避免修改系统全局Python包,防止影响其他项目:

  • 激活虚拟环境后,再执行上述升级/降级命令。

内容的提问来源于stack exchange,提问作者CodeRed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 12:52:07