在 python ValueError 中导入 Gensim:numpy.ndarray 大小已更改,可能表示二进制不兼容。预期来自 C 标头的 88 从 PyObject 得到 80

Posted

技术标签:

【中文标题】在 python ValueError 中导入 Gensim:numpy.ndarray 大小已更改,可能表示二进制不兼容。预期来自 C 标头的 88 从 PyObject 得到 80【英文标题】:Importing Gensim in python ValueError: numpy.ndarray size changed, may indicate binary incompatibility. Expected 88 from C header got 80 from PyObject 【发布时间】:2022-01-18 22:45:20 【问题描述】:

我只是在执行以下导入语句:

from gensim.test.utils import common_texts
from gensim.models import Word2Vec

但我不断收到以下错误

Traceback (most recent call last):
  File "/Users/user/PycharmProjects/COMP34711-NLP-CW2/main.py", line 15, in <module>
    from gensim.test.utils import common_texts
  File "/Users/user/.conda/envs/COMP34711-NLP-CW2/lib/python3.8/site-packages/gensim/__init__.py", line 11, in <module>
    from gensim import parsing, corpora, matutils, interfaces, models, similarities, utils  # noqa:F401
  File "/Users/user/.conda/envs/COMP34711-NLP-CW2/lib/python3.8/site-packages/gensim/corpora/__init__.py", line 6, in <module>
    from .indexedcorpus import IndexedCorpus  # noqa:F401 must appear before the other classes
  File "/Users/user/.conda/envs/COMP34711-NLP-CW2/lib/python3.8/site-packages/gensim/corpora/indexedcorpus.py", line 14, in <module>
    from gensim import interfaces, utils
  File "/Users/user/.conda/envs/COMP34711-NLP-CW2/lib/python3.8/site-packages/gensim/interfaces.py", line 19, in <module>
    from gensim import utils, matutils
  File "/Users/user/.conda/envs/COMP34711-NLP-CW2/lib/python3.8/site-packages/gensim/matutils.py", line 1024, in <module>
    from gensim._matutils import logsumexp, mean_absolute_difference, dirichlet_expectation
  File "gensim/_matutils.pyx", line 1, in init gensim._matutils
ValueError: numpy.ndarray size changed, may indicate binary incompatibility. Expected 88 from C header, got 80 from PyObject

我已尝试将我的 Numpy 包(根据 this 答案)更新到 1.21.4(本文发布时的最新版本),但我仍然遇到同样的问题。

更新: 根据 Gensim 官方存储库中打开的 these github 问题,Gensim 和 Apple 的 M1 处理器之间似乎有些不兼容。 This 特别是问题,显示了我的确切问题。

【问题讨论】:

【参考方案1】:

你是如何安装gensim的?

您可能想尝试卸载gensim 并重新安装它,numpy 已更新,以确保任何安装时选择/编译都使用更新后的numpy? p>

如果这没有帮助,您可能想尝试在新的 conda 环境中重新开始,并确保安装新的 numpy 1st,然后是 gensim

【讨论】:

以上是关于在 python ValueError 中导入 Gensim:numpy.ndarray 大小已更改,可能表示二进制不兼容。预期来自 C 标头的 88 从 PyObject 得到 80的主要内容,如果未能解决你的问题,请参考以下文章

ValueError:错误的项目数通过 500,位置暗示 1,Python 和 Pandas

Oracle 在 bat 文件中导入批处理文件

在 python 类中导入模块

如何在 Python 中导入 pytraj?

在 Python 中导入模块的问题

如何在 Python 文件中导入 Kotlin 文件