PaddleHub命令报错: ModuleNotFoundError: No module named ‘tqdm.contrib‘

在centos7上运行paddlepaddle 需要用到paddlehub,安装完paddlehub后使用hub命令提示以下报错

[root@localhost ~]# hub
/usr/local/python3/lib/python3.6/site-packages/rarfile.py:71: CryptographyDeprecationWarning: Python 3.6 is no longer supported by the Python core team. Therefore, support for it is deprecated in cryptography. The next release of cryptography (40.0) will be the last to support Python 3.6.
  from cryptography.hazmat.backends import default_backend
Traceback (most recent call last):
  File "/usr/bin/hub", line 5, in <module>
    from paddlehub.commands.utils import execute
  File "/usr/local/python3/lib/python3.6/site-packages/paddlehub/__init__.py", line 31, in <module>
    from paddlehub import datasets
  File "/usr/local/python3/lib/python3.6/site-packages/paddlehub/datasets/__init__.py", line 16, in <module>
    from paddlehub.datasets.chnsenticorp import ChnSentiCorp
  File "/usr/local/python3/lib/python3.6/site-packages/paddlehub/datasets/chnsenticorp.py", line 19, in <module>
    from paddlehub.datasets.base_nlp_dataset import TextClassificationDataset
  File "/usr/local/python3/lib/python3.6/site-packages/paddlehub/datasets/base_nlp_dataset.py", line 21, in <module>
    import paddlenlp
  File "/usr/local/python3/lib/python3.6/site-packages/paddlenlp/__init__.py", line 25, in <module>
    from . import datasets
  File "/usr/local/python3/lib/python3.6/site-packages/paddlenlp/datasets/__init__.py", line 15, in <module>
    from .dataset import *
  File "/usr/local/python3/lib/python3.6/site-packages/paddlenlp/datasets/dataset.py", line 27, in <module>
    import datasets
  File "/usr/local/python3/lib/python3.6/site-packages/datasets/__init__.py", line 33, in <module>
    from .arrow_dataset import Dataset, concatenate_datasets
  File "/usr/local/python3/lib/python3.6/site-packages/datasets/arrow_dataset.py", line 42, in <module>
    from datasets.tasks.text_classification import TextClassification
  File "/usr/local/python3/lib/python3.6/site-packages/datasets/tasks/__init__.py", line 3, in <module>
    from ..utils.logging import get_logger
  File "/usr/local/python3/lib/python3.6/site-packages/datasets/utils/__init__.py", line 21, in <module>
    from .download_manager import DownloadManager, GenerateMode
  File "/usr/local/python3/lib/python3.6/site-packages/datasets/utils/download_manager.py", line 26, in <module>
    from .file_utils import (
  File "/usr/local/python3/lib/python3.6/site-packages/datasets/utils/file_utils.py", line 27, in <module>
    from tqdm.contrib.concurrent import thread_map
ModuleNotFoundError: No module named 'tqdm.contrib'

这里提示缺少“tqdm.contrib”模块,但是我在python中就可以直接import进来,并没有报错

 Python 3.6.8 (default, Nov 16 2020, 16:55:22)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tqdm.contrib
>>> tqdm.contrib
>>> import tqdm.contrib.concurrent
>>> tqdm.contrib.concurrent
<module 'tqdm.contrib.concurrent' from '/usr/local/lib/python3.6/site-packages/tqdm/contrib/concurrent.py'>

以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:

可以尝试在CentOS 7上使用以下命令安装tqdm模块:

sudo yum -y install python3-tqdm

如果上述命令不行,可以尝试升级pip并使用pip安装tqdm模块:

sudo python3 -m pip install --upgrade pip
sudo python3 -m pip install tqdm

如果还是无法解决问题,可以考虑在Python中查看tqdm模块的安装路径,并将其添加到系统环境变量中:

python3 -c "import tqdm; print(tqdm.__file__)"

然后将输出的路径添加到系统环境变量中:

export PYTHONPATH=$PYTHONPATH:/path/to/tqdm

或者将其添加到Python模块搜索路径中:

echo "/path/to/tqdm" >> /usr/local/python3/lib/python3.6/site-packages/custom.pth

其中,/path/to/tqdm为tqdm模块的安装路径。

该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
根据报错信息,可以看到在PaddleHub命令中缺少了'tqdm.contrib'模块,但是在Python 3.6中却可以成功导入该模块。这可能是因为在PaddleHub中使用的Python环境与您在Python 3.6中使用的环境不同导致的。

解决该问题的方法是在PaddleHub环境中安装'tqdm'模块及其依赖项。

可以使用以下命令在PaddleHub环境中安装'tqdm'模块:

pip install tqdm

如果您在安装时遇到了权限问题,可以在命令前加上'sudo':

sudo pip install tqdm

如果您使用的是conda环境,可以使用以下命令安装'tqdm'模块:

conda install tqdm

安装完成后,尝试再次使用PaddleHub命令,应该就可以正常运行了。如果还有其他问题,可以提供更多的错误信息和代码,以便更好地帮助您解决问题。


如果以上回答对您有所帮助,点击一下采纳该答案~谢谢