我刚刚使用安装了请求模块easy_install
我尝试运行这个演示代码教程,
import requests
payload = {'username': 'xxxx', 'password': 'xxxxx'}
r = requests.get('https://github.com/timeline.json')
但我收到此错误:
属性错误:
'module' object has no attribute 'get'
答案
您正在从以下位置导入所有名称requests
将模块添加到本地命名空间中,这意味着您不再需要使用模块名称作为前缀:
>>> from requests import *
>>> get
<function get at 0x107820b18>
如果您要使用以下命令导入模块import requests
相反,您将模块本身添加到命名空间中,并且必须使用全名:
>>> import requests
>>> requests.get
<function get at 0x102e46b18>
请注意,上面的示例是我在解释器中测试得到的结果。requests.py
python 包中的文件:
>>> import requests
>>> print requests.__file__
/private/tmp/requeststest/lib/python2.7/site-packages/requests/__init__.pyc
您还可以测试由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']