2012-09-04 13 views

Respuesta

9

Está importando todos los nombres del módulo requests en su espacio de nombres local, lo que significa que no es necesario usar el prefijo más con el nombre del módulo:

>>> from requests import * 
>>> get 
<function get at 0x107820b18> 

Si se va a importar el módulo con una declaración import requests lugar, se añade el propio módulo para el espacio de nombres y tienes que utilizar el nombre completo:

>>> import requests 
>>> requests.get 
<function get at 0x102e46b18> 

tenga en cuenta que los ejemplos anteriores es lo que obtuve de mis pruebas en el intérprete. Si obtiene resultados diferentes, está importando el módulo incorrecto; comprobar si tiene un archivo adicional requests.py en su paquete python:

>>> import requests 
>>> print requests.__file__ 
/private/tmp/requeststest/lib/python2.7/site-packages/requests/__init__.pyc 

También puede probar para el nombre de la lista proporcionado por el módulo requests:

>>> print dir(requests) 
['ConnectionError', 'HTTPError', 'Request', 'RequestException', 'Response', 'Session', 'Timeout', 'TooManyRedirects', 'URLRequired', '__author__', '__build__', '__builtins__', '__copyright__', '__doc__', '__file__', '__license__', '__name__', '__package__', '__path__', '__title__', '__version__', '_oauth', 'api', 'auth', 'certs', 'codes', 'compat', 'cookies', 'defaults', 'delete', 'exceptions', 'get', 'head', 'hooks', 'models', 'options', 'packages', 'patch', 'post', 'put', 'request', 'safe_mode', 'session', 'sessions', 'status_codes', 'structures', 'utils'] 
+0

Gracias, corregí la pregunta, pero más abajo de ellos funciona – mojians

+1

Gracias, problema resuelto, borré el otro directorio de Solicitudes y funciona – mojians

+1

Sí existencia duplicada de la archivo (requests.py) es el problema, escribí un archivo llamado requests.py y aquí importé el módulo de "solicitudes". Así que el motor de Python busca el método en el más cercano, es decir, el nombre del archivo actual. La solución es cambiar el nombre del archivo que estoy escribiendo. – SIslam

3

Tienes que encontrar variantes de cómo solucionar esto.

import requests 

o

r = get('https://github.com/timeline.json') 

P. S. El primero es preferible

+0

Gracias, corregí el código, pero aún aparece el error – mojians

+0

@mojians Muéstrame 'print dir (requests)' pls. –

+0

['__builtins__', '__doc__', '__file__', '__name__', '__package__', 'requests'] – mojians

19

Este es el síntoma típico de una relación requests.py (o requests.pyc) archivo sentado en su directorio actual, o en otro lugar en el PYTHONPATH. Si este es el caso, elimine o cambie el nombre, ya que está sombreando el módulo que realmente desea importar.

+2

gracias, esto es exactamente lo que encontré – mojians

3

Como ya se ha dicho, el problema más común es que tiene un archivo requests.py en algún lugar de su PYTHONPATH.

Pero como el módulo de solicitudes utiliza internamente otros módulos (por ejemplo, de la biblioteca de python estándar), también puede haber problemas con otros nombres de archivo. Por ejemplo, tuve el mismo problema cuando llamé a un script http.py. En ese caso, la salida de print dir(requests) es correcta, lo que hace que rastrear el error sea un poco más difícil ...

+1

Gracias. Me pican escribiendo un código de ejemplo. Nunca pensé que fuera importado, pero en retrospectiva, json.py no era el nombre de archivo más sensato para elegir:/ –

1

Esto podría ser un error de usuario si está trabajando con un framework como Django que también tiene objetos solicitados.

que constantemente se confunden con Django:

request.POST 

y request 's:

request.post 

Ese era mi problema, de todos modos.Preparándose para los votos a la baja.

1

Tuve el mismo error.

único que hice fue guardarlo como requests.py

Entonces me guardé como algún otro nombre. Y problema resuelto.

+0

Muchas gracias, eso es todo. –

2

Cometí un error de que el nombre del archivo de prueba era requests.py. Entonces, cuando importo requests.py, no es lo que quiero importar. Luego, cambié el nombre del archivo de prueba. ¡¡¡Funciona!!!

Cuestiones relacionadas