运行时错误:模块根据API版本0xe编译,但导入语句转换器时此版本的numpy为0xd



我想使用句子转换器。为此,我安装了如下句子转换器:

pip install sentence-transformers

然后,我做了如下导入:

from sentence_transformers import SentenceTransformer

这导致了以下错误:

RuntimeError: module compiled against API version 0xe but this version of numpy is 0xd

整个回溯是:

Traceback (most recent call last):
File "<ipython-input-112-dbcd88385343>", line 1, in <module>
from sentence_transformers import SentenceTransformer
File "C:Users20200016AppDataRoamingPythonPython38site-packagessentence_transformers__init__.py", line 3, in <module>
from .datasets import SentencesDataset, ParallelSentencesDataset
File "C:Users20200016AppDataRoamingPythonPython38site-packagessentence_transformersdatasets__init__.py", line 3, in <module>
from .ParallelSentencesDataset import ParallelSentencesDataset
File "C:Users20200016AppDataRoamingPythonPython38site-packagessentence_transformersdatasetsParallelSentencesDataset.py", line 4, in <module>
from .. import SentenceTransformer
File "C:Users20200016AppDataRoamingPythonPython38site-packagessentence_transformersSentenceTransformer.py", line 27, in <module>
from .models import Transformer, Pooling, Dense
File "C:Users20200016AppDataRoamingPythonPython38site-packagessentence_transformersmodels__init__.py", line 1, in <module>
from .Transformer import Transformer
File "C:Users20200016AppDataRoamingPythonPython38site-packagessentence_transformersmodelsTransformer.py", line 2, in <module>
from transformers import AutoModel, AutoTokenizer, AutoConfig
File "C:Users20200016AppDataRoamingPythonPython38site-packagestransformersfile_utils.py", line 1985, in __getattr__
value = getattr(module, name)
File "C:Users20200016AppDataRoamingPythonPython38site-packagestransformersfile_utils.py", line 1984, in __getattr__
module = self._get_module(self._class_to_module[name])
File "C:Users20200016AppDataRoamingPythonPython38site-packagestransformersfile_utils.py", line 1993, in _get_module
return importlib.import_module("." + module_name, self.__name__)
File "C:Users20200016Anaconda3libimportlib__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "C:Users20200016AppDataRoamingPythonPython38site-packagestransformersmodelsautomodeling_auto.py", line 24, in <module>
from ..albert.modeling_albert import (
File "C:Users20200016AppDataRoamingPythonPython38site-packagestransformersmodelsalbertmodeling_albert.py", line 51, in <module>
from .configuration_albert import AlbertConfig
File "C:Users20200016AppDataRoamingPythonPython38site-packagestransformersmodelsalbertconfiguration_albert.py", line 21, in <module>
from ...onnx import OnnxConfig
File "C:Users20200016AppDataRoamingPythonPython38site-packagestransformersonnx__init__.py", line 17, in <module>
from .convert import export, validate_model_outputs
File "C:Users20200016AppDataRoamingPythonPython38site-packagestransformersonnxconvert.py", line 23, in <module>
from .. import PreTrainedModel, PreTrainedTokenizer, TensorType, TFPreTrainedModel, is_torch_available
File "C:Users20200016AppDataRoamingPythonPython38site-packagestransformersfile_utils.py", line 1984, in __getattr__
module = self._get_module(self._class_to_module[name])
File "C:Users20200016AppDataRoamingPythonPython38site-packagestransformersfile_utils.py", line 1993, in _get_module
return importlib.import_module("." + module_name, self.__name__)
File "C:Users20200016Anaconda3libimportlib__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "C:Users20200016AppDataRoamingPythonPython38site-packagestransformersmodeling_tf_utils.py", line 27, in <module>
import tensorflow as tf
File "C:Users20200016Anaconda3libsite-packagestensorflow__init__.py", line 37, in <module>
from tensorflow.python.tools import module_util as _module_util
File "C:Users20200016Anaconda3libsite-packagestensorflowpython__init__.py", line 37, in <module>
from tensorflow.python.eager import context
File "C:Users20200016Anaconda3libsite-packagestensorflowpythoneagercontext.py", line 35, in <module>
from tensorflow.python.client import pywrap_tf_session
File "C:Users20200016Anaconda3libsite-packagestensorflowpythonclientpywrap_tf_session.py", line 19, in <module>
from tensorflow.python.client._pywrap_tf_session import *
ImportError: SystemError: <built-in method __contains__ of dict object at 0x0000021655B72740> returned a result with an error set

我已经尝试升级Numpy:

pip install numpy --upgrade

但这又回来了:

Requirement already up-to-date: numpy in c:...site-packages (1.22.2)

这里出了什么问题?我该如何克服这个错误?

我也遇到过类似的问题,在我的案例中,升级numpy解决了这个问题。我检查了sentencetransformer的requirements.txt,但他们没有说明具体的版本。

此外,您可以尝试在没有依赖pip install --no-deps sentence-transformers的情况下安装句子转换器,然后手动安装。下载requirements.txt并通过pip install -r requirements.txt进行安装。在这个过程中,您还可以更容易地查看某些包是否存在任何冲突,例如,这些信息可能会帮助您确定需要哪个确切的numpy版本。

最新更新