transformers: Unable to compare versions for numpy>=1.17: need=1.17 found=None.

System Info

Ubuntu 18.04.6 transformers version : 4.18.0 pytorch version : 2.0.0 numpy version : 1.24.3 conda env

Who can help?

@sgugger

Information

  • The official example scripts
  • My own modified scripts

Tasks

  • An officially supported task in the examples folder (such as GLUE/SQuAD, …)
  • My own task or dataset (give details below)

Reproduction

from transformers import pipeline text_classifier = pipeline(‘text-classification’, model=‘distilbert-base-uncased-finetuned-sst-2-english’) text = “This movie is good!” result = text_classifier(text) print(result)

when I run a code using transformers, there will be an error:

Traceback (most recent call last): File “/home/hyx/hhq/hugging_face/test.py”, line 1, in <module> from transformers import pipeline File “/home/miniconda3/lib/python3.9/site-packages/transformers/init.py”, line 26, in <module> from . import dependency_versions_check File “/home/miniconda3/lib/python3.9/site-packages/transformers/dependency_versions_check.py”, line 41, in <module> require_version_core(deps[pkg]) File “/home/miniconda3/lib/python3.9/site-packages/transformers/utils/versions.py”, line 123, in require_version_core return require_version(requirement, hint) File “/home/miniconda3/lib/python3.9/site-packages/transformers/utils/versions.py”, line 117, in require_version _compare_versions(op, got_ver, want_ver, requirement, pkg, hint) File “/home/miniconda3/lib/python3.9/site-packages/transformers/utils/versions.py”, line 45, in _compare_versions raise ValueError( ValueError: Unable to compare versions for numpy>=1.17: need=1.17 found=None. This is unusual. Consider reinstalling numpy.

Expected behavior

I have tried to reinstall numpy ,transformers, but it’s not work

About this issue

  • Original URL
  • State: closed
  • Created a year ago
  • Reactions: 3
  • Comments: 15 (3 by maintainers)

Most upvoted comments

I got around it by modifying transformers/utils/versions.py :

line 102, from: got_ver = importlib.metadata.version(pkg)

to:

got_ver = importlib.metadata.version(pkg)
        if got_ver is None:
            import pkg_resources
            got_ver = pkg_resources.get_distribution(pkg).version

For some reason, importlib.metadata.version("numpy") returned None, but pkg_resources works

Updating transformers to the latest version should fix the problem. You can run: pip install --upgrade transformers to update Transformers to the latest version.

So, something was wrong in original Conda virtual environment (which I removed).

BTW I got this workaround working, clean up and remove all the (possibly outdated) metadata from site-packages:

site_packages=$(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")
rm -rf "$site_packages"/numpy
pip install --upgrade --force-reinstall numpy

BTW just reinstalling via pip -I --force-reinstall install numpy did not work.

I got around it by modifying transformers/utils/versions.py :

line 102, from: got_ver = importlib.metadata.version(pkg)

to:

got_ver = importlib.metadata.version(pkg)
        if got_ver is None:
            import pkg_resources
            got_ver = pkg_resources.get_distribution(pkg).version

For some reason, importlib.metadata.version("numpy") returned None, but pkg_resources works

👍 Awesome