I am trying to import requests module, but I got this error my python version is 3.4 running on ubuntu 14.04
>>> import requests Traceback (most recent call last): File "/usr/local/lib/python3.4/dist-packages/requests/packages/urllib3/connectionpool.py", line 10, in <module> from queue import LifoQueue, Empty, Full ImportError: cannot import name 'LifoQueue' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/local/lib/python3.4/dist-packages/requests/__init__.py", line 58, in <module> from . import utils File "/usr/local/lib/python3.4/dist-packages/requests/utils.py", line 26, in <module> from .compat import parse_http_list as _parse_list_header File "/usr/local/lib/python3.4/dist-packages/requests/compat.py", line 7, in <module> from .packages import chardet File "/usr/local/lib/python3.4/dist-packages/requests/packages/__init__.py", line 3, in <module> from . import urllib3 File "/usr/local/lib/python3.4/dist-packages/requests/packages/urllib3/__init__.py", line 10, in <module> from .connectionpool import ( File "/usr/local/lib/python3.4/dist-packages/requests/packages/urllib3/connectionpool.py", line 12, in <module> from Queue import LifoQueue, Empty, Full ImportError: No module named 'Queue' 07 Answers
import queue is lowercase q in Python 3.
Change Q to q and it will be fine.
(See code in for smart switching.)
1Queue is in the multiprocessing module so:
from multiprocessing import Queue 3I solve the problem my issue was I had file named queue.py in the same directory
2It's because of the Python version. In Python 2.x it's import Queue as queue; on the contrary in Python 3 it's import queue. If you want it for both environments you may use something below as mentioned here
try: import queue except ImportError: import Queue as queue 1In my case it should be:
from multiprocessing import JoinableQueue
Since in python2, Queue has methods like .task_done(), but in python3 multiprocessing.Queue doesn't have this method, and multiprocessing.JoinableQueue does.
I run into the same problem and learn that queue module defines classes and exceptions, that defines the public methods (Queue Objects).
Ex.
workQueue = queue.Queue(10) I just copy the file name Queue.py in the */lib/python2.7/ to queue.py and that solved my problem.