首页 > 解决方案 > 错误 python 包版本:RequestsDependencyWarning:urllib3 (1.7.1) 或 chardet (2.0.1) 与支持的版本不匹配

问题描述

我是 python 新手,我正在尝试运行https://github.com/epinna/tplmap

要求.txt

PyYAML==3.12
certifi==2017.11.5
chardet==3.0.4
idna==2.6
requests==2.18.4
urllib3==1.22
wsgiref==0.1.2

从 Github 下载项目后,我运行sudo pip intall -r requirements.txt,当我尝试运行 tplmap.py 文件时,出现此错误

$ ./tplmap.py -u 'localhost:3000'
/usr/local/lib/python2.7/dist-packages/requests/__init__.py:80: RequestsDependencyWarning: urllib3 (1.7.1) or chardet (2.0.1) doesn't match a supported version!
      RequestsDependencyWarning)
    Traceback (most recent call last):
      File "./tplmap.py", line 3, in <module>
        from core import checks
      File "/home/amion/Desktop/tplmap-master/core/checks.py", line 20, in <module>
        from core.channel import Channel
      File "/home/amion/Desktop/tplmap-master/core/channel.py", line 1, in <module>
        import requests
      File "/usr/local/lib/python2.7/dist-packages/requests/__init__.py", line 90, in <module>
        from urllib3.exceptions import DependencyWarning
    ImportError: cannot import name DependencyWarning

我查看/usr/local/lib/python2.7/dist-packages/requests/__init__.py文件并查看:

# urllib3 >= 1.21.1, <= 1.22
# chardet >= 3.0.2, < 3.1.0

如果我运行 pip freeze 我会看到:

chardet==3.0.4
requests==2.18.4
urllib3==1.22

我不明白这个消息,这些版本号是从哪里形成的?我错过了什么?

 RequestsDependencyWarning: urllib3 (1.7.1) or chardet (2.0.1) doesn't match a supported version!

标签: pythonversionrequirements.txt

解决方案


我从 /usr/lib/python2.7/dist-packages 中删除了 urlib3 和 chardet 目录

然后我从 requirements.txt 文件中卸载了所有要求,并在没有 sudo 和 --user 选项的情况下再次安装它们

cd /usr/lib/python2.7/dist-packages
sudo rm -r urllib3/
sudo rm -r chardet/

cd /home/amion/Desktop/tplmap-master
sudo pip uninstall -r requirements.txt 
pip install -r requirements.txt --user

似乎 tplmap.py 正在尝试使用目录中的 urllib3 和 chardet

/usr/lib/python2.7/dist-packages

而不是来自目录

/usr/local/lib/python2.7/dist-packages

推荐阅读