导入 Transformer 包抛出 value_error

Sri*_*vas 2 python anaconda jupyter huggingface-transformers

我已使用命令“ conda install -c conda-forge transformers”从 Anaconda 管理员控制台在我的 Jupyter Notebook 中成功安装了 Transformer 包。

但是,当我尝试使用“ ”命令在 Jupyter 笔记本中加载 Transformer 包时import transformers,出现错误'ValueError: got_ver is None'

我不知道如何解决这个问题。感谢任何投入。

下面是完整的错误:

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-58-279c49635b32> in <module>
----> 1 import transformers

C:\ProgramData\Anaconda3\lib\site-packages\transformers\__init__.py in <module>
     41 
     42 # Check the dependencies satisfy the minimal versions required.
---> 43 from . import dependency_versions_check
     44 from .file_utils import (
     45     _LazyModule,

C:\ProgramData\Anaconda3\lib\site-packages\transformers\dependency_versions_check.py in <module>
     39                 continue  # not required, check version only if installed
     40 
---> 41         require_version_core(deps[pkg])
     42     else:
     43         raise ValueError(f"can't find {pkg} in {deps.keys()}, check dependency_versions_table.py")

C:\ProgramData\Anaconda3\lib\site-packages\transformers\utils\versions.py in require_version_core(requirement)
    118     """require_version wrapper which emits a core-specific hint on failure"""
    119     hint = "Try: pip install transformers -U or pip install -e '.[dev]' if you're working with git master"
--> 120     return require_version(requirement, hint)

C:\ProgramData\Anaconda3\lib\site-packages\transformers\utils\versions.py in require_version(requirement, hint)
    112     if want_ver is not None:
    113         for op, want_ver in wanted.items():
--> 114             _compare_versions(op, got_ver, want_ver, requirement, pkg, hint)
    115 
    116 

C:\ProgramData\Anaconda3\lib\site-packages\transformers\utils\versions.py in _compare_versions(op, got_ver, want_ver, requirement, pkg, hint)
     43 def _compare_versions(op, got_ver, want_ver, requirement, pkg, hint):
     44     if got_ver is None:
---> 45         raise ValueError("got_ver is None")
     46     if want_ver is None:
     47         raise ValueError("want_ver is None")

ValueError: got_ver is None
Run Code Online (Sandbox Code Playgroud)

小智 5

我遇到了类似的错误,花了一整天的时间才修复。

这是由于导入时变压器的某些预期包的版本不匹配造成的。具体包详情可以在本地磁盘的transformers文件夹中查看。2 个 python 文件显示在 ..Anaconda3\Lib\site-packages\transformers 位置。这些是 dependency_versions_table.py 和 dependency_versions_check.py

依赖关系表给出了变压器及其版本的所有必需包的详细信息。

依赖版本表

依赖版本检查文件给出了检查特定版本的代码 依赖版本检查代码

您可以检查这些版本。对我来说,下面是输出

from importlib_metadata import version
print(version('tqdm')) #4.64.0
print(version('regex'))  # 2022.3.15
print(version('sacremoses'))  # 0.0.46
print(version('packaging'))  # 21.0'
print(version('filelock')) # 3.6.0
print(version('numpy'))  # 'none'
print(version('tokenizers'))  #0.12.1 
Run Code Online (Sandbox Code Playgroud)

我的代码最初为 numpy 返回“none”。然后我使用 2 个代码检查了 numpy 版本

print(numpy.__version__)
pip show numpy
Run Code Online (Sandbox Code Playgroud)

两者都给出了两个不同的版本。然后我使用下面的代码强制安装一个版本

!python -m pip install numpy==1.19.5 --user
Run Code Online (Sandbox Code Playgroud)

之后我再次检查版本,发现 numpy 返回版本 1.19.5。然后重启内核并导入Transformers

这解决了变压器导入的问题

不:如果 importlib_metadata 不起作用,也尝试使用 importlib.metadata