Why does my “import requests” fail with ImportError: No module named 'requests.packages.urllib3'?

匿名 (未验证) 提交于 2019-12-03 09:02:45

问题:

This has happened both on OS X, and Linux. Unfortunately I don't have the exact repro steps, but that's OK because I'm about to answer my own question below.

Here's a typical failure:

Python 2.7.6 (default, Sep  9 2014, 15:04:36)  [GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import requests Traceback (most recent call last):   File "<stdin>", line 1, in <module>   File "/Users/erichanchrow/git-repositories/rack_assigner/venv/lib/python2.7/site-packages/requests/__init__.py", line 58, in <module>     from . import utils   File "/Users/erichanchrow/git-repositories/rack_assigner/venv/lib/python2.7/site-packages/requests/utils.py", line 26, in <module>     from .compat import parse_http_list as _parse_list_header   File "/Users/erichanchrow/git-repositories/rack_assigner/venv/lib/python2.7/site-packages/requests/compat.py", line 42, in <module>     from .packages.urllib3.packages.ordered_dict import OrderedDict   File "/Users/erichanchrow/git-repositories/rack_assigner/venv/lib/python2.7/site-packages/requests/packages/__init__.py", line 83, in load_module     raise ImportError("No module named '%s'" % (name,)) ImportError: No module named 'requests.packages.urllib3' >>>  

回答1:

I can't even explain why, but the problem was due to my having a file named "email.py" in my current directory. I renamed that to something else, and suddenly everything started working again.

By sticking a "breakpoint" (i.e., a deliberate divide-by-zero error) into that file, we can see who was importing it: (venv):) 14:36:46 [erichanchrow@Eric-Hanchrows-iMac rack_assigner] (refunds *)$ python -c 'import refund' Traceback (most recent call last): File "<string>", line 1, in <module> File "refund.py", line 11, in <module> import requests File "/Users/erichanchrow/git-repositories/rack_assigner/venv/lib/python2.7/site-packages/requests/__init__.py", line 53, in <module> from .packages.urllib3.contrib import pyopenssl File "/Users/erichanchrow/git-repositories/rack_assigner/venv/lib/python2.7/site-packages/requests/packages/__init__.py", line 63, in load_module __import__(name) File "/Users/erichanchrow/git-repositories/rack_assigner/venv/lib/python2.7/site-packages/requests/packages/urllib3/__init__.py", line 10, in <module> from .connectionpool import ( File "/Users/erichanchrow/git-repositories/rack_assigner/venv/lib/python2.7/site-packages/requests/packages/urllib3/connectionpool.py", line 37, in <module> from .request import RequestMethods File "/Users/erichanchrow/git-repositories/rack_assigner/venv/lib/python2.7/site-packages/requests/packages/urllib3/request.py", line 6, in <module> from .filepost import encode_multipart_formdata File "/Users/erichanchrow/git-repositories/rack_assigner/venv/lib/python2.7/site-packages/requests/packages/urllib3/filepost.py", line 8, in <module> from .fields import RequestField File "/Users/erichanchrow/git-repositories/rack_assigner/venv/lib/python2.7/site-packages/requests/packages/urllib3/fields.py", line 1, in <module> import email.utils File "email.py", line 11, in <module> 5/0 ZeroDivisionError: integer division or modulo by zero



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!