evaluate icon indicating copy to clipboard operation
evaluate copied to clipboard

Correct the warning information of loader.py

Open HelloWorldLTY opened this issue 1 year ago • 2 comments

Hi, I notice that if the missing library is scikit-learn, the prompt will be:

  File "/gpfs/radev/project/ying_rex/tl688/dnabert2/lib/python3.10/site-packages/evaluate/loading.py", line 489, in get_module
    local_imports = _download_additional_modules(
  File "/gpfs/radev/project/ying_rex/tl688/dnabert2/lib/python3.10/site-packages/evaluate/loading.py", line 265, in _download_additional_modules
    raise ImportError(
ImportError: To be able to use evaluate-metric/accuracy, you need to install the following dependencies['scikit-learn'] using 'pip install sklearn' for instance'

But this instruction cannot work, since pip install sklearn will lead to this error:

      The 'sklearn' PyPI package is deprecated, use 'scikit-learn'
      rather than 'sklearn' for pip commands.

      Here is how to fix this error in the main use cases:
      - use 'pip install scikit-learn' rather than 'pip install sklearn'
      - replace 'sklearn' by 'scikit-learn' in your pip requirements files
        (requirements.txt, setup.py, setup.cfg, Pipfile, etc ...)
      - if the 'sklearn' package is used by one of your dependencies,
        it would be great if you take some time to track which package uses
        'sklearn' instead of 'scikit-learn' and report it to their issue tracker
      - as a last resort, set the environment variable
        SKLEARN_ALLOW_DEPRECATED_SKLEARN_PACKAGE_INSTALL=True to avoid this error

      More information is available at
      https://github.com/scikit-learn/sklearn-pypi-package

The correct instruction will be "pip install scikit-learn". So I fix it, thanks.

HelloWorldLTY avatar Sep 11 '24 00:09 HelloWorldLTY

Hi, would you please fix this issue? Thanks.

HelloWorldLTY avatar Sep 21 '24 04:09 HelloWorldLTY

@pcuenca @lvwerra Could you please merge this awesome pull request?

https://github.com/huggingface/evaluate/pull/498 is already merged, but there is a remaining issue regarding the installation of scikit-learn. As reported in https://github.com/huggingface/evaluate/issues/394 and https://github.com/huggingface/evaluate/issues/642 , the point is to show pip install sklearn (not pip install scikit-learn)[1].

  • Python 3.11.8
  • evaluate 0.4.3
>>> import evaluate
>>> metric = evaluate.load("accuracy")

  File "/.../.venv/lib/python3.11/site-packages/evaluate/loading.py", line 265, in _download_additional_modules
    raise ImportError(
ImportError: To be able to use evaluate-metric/accuracy, you need to install the following dependencies['scikit-learn'] using 'pip install sklearn' for instance'

This pull request fixes the issue by displaying pip install scikit-learn instead of pip install sklearn.

ImportError: To be able to use evaluate-metric/accuracy, you need to install the following dependencies['scikit-learn'] using 'pip install scikit-learn' for instance'

P.S. After merging this, we can close PR #436 #608 #614 to tidy up.


[1]: use pip install scikit-learn rather than pip install sklearn ref: https://pypi.org/project/sklearn/

ftnext avatar Oct 26 '24 04:10 ftnext