我遇到以下问题。我继承了一个我需要使用的.py文件,但我显然使用了不同的python版本给作者。
from datetime import datetime
import json, requests, os, time, sys
from requests.packages.urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
我收到这些错误;
E1101:Module 'requests.packages' has no 'urllib3' member
E0401:Unable to import 'requests.packages.urllib3.exceptions'
任何帮助我指出错误方向的帮助都会很棒。
如果有帮助,我正在使用Python 3.6.4。
答案 0 :(得分:0)
您安装了requests
吗?
pip3 install --upgrade requests
请参阅How to fix ImportError: No module named packages.urllib3?
这里还提到了这个错误: https://github.com/thp/urlwatch/issues/159
我设法通过卸载系统pip(python3-pip)然后使用easy-install3重新安装最新的pip来解决Ubuntu 14.04上的这个问题。之后我能够升级请求(否则拒绝升级)。我还需要从/ usr / lib / python3 / dist-packages中手动删除urllib3和chardet。
总结:这个问题是由于使用安装了发行版的Python 3引起的,它运行了一个修补(过时)的pip,拒绝升级任何发行版安装的Python包。
看起来安装了旧版本的请求。 在macOS上我建议通过homebrew安装python以避免搞乱python的系统安装。
brew install python3
python3 -V
pip3 install requests
答案 1 :(得分:0)
我意识到这有点老了,但是我遇到了同样的问题,发现在python3中可以使用 urllib3
因此,根据您的情况,而不是:
from requests.packages.urllib3.exceptions import InsecureRequestWarning
使用:
from urllib3.exceptions import InsecureRequestWarning
答案 2 :(得分:0)
这是一个直接的方法
from urllib3 import disable_warnings
from urllib3.exceptions import InsecureRequestWarning
VERIFY_HTTPS = False
if VERIFY_HTTPS is not True:
disable_warnings(InsecureRequestWarning)
答案 3 :(得分:0)
我遇到了同样的问题,这就是最终在我的计算机上解决的问题:
requests.urllib3.disable_warnings()
将此命令放在导入请求之后的任何位置。