【问题标题】:ImportError when from transformers import BertTokenizer从转换器导入 BertTokenizer 时出现 ImportError
【发布时间】:2021-05-21 12:27:34
【问题描述】:

我的代码是:

import torch
from transformers import BertTokenizer
from IPython.display import clear_output

from transformers import BertTokenizer 行有错误:

ImportError: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by /mnt/home/wbj/anaconda3/envs/pytorch/lib/python3.8/site-packages/tokenizers/tokenizers.cpython-38-x86_64-linux-gnu.so)

我发现问题是由于文件/lib/x86_64-linux-gnu/libm.so.6 引起的,当我使用代码strings /lib/x86_64-linux-gnu/libm.so.6 | grep GLIBC_ 时,我得到了输出

GLIBC_2.2.5
GLIBC_2.4
GLIBC_2.15
GLIBC_2.18
GLIBC_2.23
GLIBC_PRIVATE

该文件不支持 GLIBC_2.29。我该如何解决这个问题?

【问题讨论】:

  • 能否在您的问题中包含完整的错误回溯?

标签: python importerror bert-language-model


【解决方案1】:

我有同样的问题。这是由于 tokenizers 包需要的 GLIBC 版本

你有两个选择

  1. 如果你有权限,你可以升级 glibc 库

  2. 我使用的选项。安装旧版本的标记器,例如使用 anaconda

在第二种情况下,您只需运行以下命令:

conda install -c huggingface tokenizers=0.10.1 transformers=4.6.1

注意:您可以为转换器选择其他版本,在这种情况下,当您选择较新版本的分词器时就会出现错误

【讨论】:

    【解决方案2】:

    是的,这是由于我的转换器版本在 Ubuntu 18.04 LTS 上运行。我沿着这条路走:

    conda install -c huggingface tokenizers=0.10.1 transformers=4.6.1

    但是,如果您的依赖项依赖于需要更高版本的转换器和标记器的其他包,这并不理想。

    我发现这是由于 Ubuntu 无法胜任这项任务,所以你面临:

    • 第一个选项是将您的应用程序迁移到支持高于或等于 2.29 的 GLIBC 的系统。但这意味着很多工作。看来 Ubuntu 19.04 实际上使用了那个版本。

    • 第二种选择是使用您想要或需要的版本从源代码实际构建您的 GLIBC。我对其进行了一些研究,并找到了一个网站,它实际上为您提供了从源代码构建软件包的步骤:

    http://www.linuxfromscratch.org/lfs/view/9.0-systemd/chapter05/glibc.html

    我希望这对所有 Ubuntu 18.04 用户有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-01
      • 1970-01-01
      • 2014-08-01
      • 2017-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多