libreria - requests python post
ImportError: ningún módulo llamado ''Queue'' (6)
Estoy tratando de importar el módulo de requests
, pero tengo este error, mi versión de Python es 3.4 ejecutándose en 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''
En mi caso, debería ser:
from multiprocessing import JoinableQueue
Dado que en python2, Queue tiene métodos como .task_done()
, pero multiprocessing.Queue
no lo hace y multiprocessing.JoinableQueue
sí.
Necesita instalar Queuelib
ya sea a través del Python Package Index (PyPI)
o desde la fuente.
Para instalar usando pip: -
$ pip install queuelib
Para instalar usando easy_install: -
$ easy_install queuelib
Si ha descargado un tarball fuente, puede instalarlo ejecutando lo siguiente (como root): -
python setup.py install
Queue está en el módulo de multiprocesamiento así que:
from multiprocessing import Queue
Resolvo el problema, mi problema era que tenía un archivo llamado queue.py en el mismo directorio
Yo también tuve este problema con el módulo de "solicitudes". Entonces me di cuenta de que tienes que editar el módulo "urllib3" manualmente.
abra C:/Users/Hp/AppData/Local/Programs/Python/Python35/Lib/site-packages/urllib3/packages
y coloque la primera línea de six.py
la siguiente instrucción:
from multiprocessing import Queue as queue
Recuerda guardarlo, ¡entonces has terminado!
import queue
es minúscula q
en Python 3.
Cambia Q
a q
y estará bien.
(Consulte el código en https://.com/a/29688081/632951 para la conmutación inteligente).