'模块对象没有属性'get'Python错误请求?

moj*_*ans 25 python error-handling python-requests

我刚刚使用'easy_insatll'安装了Requests模块,我试图运行这个tutrorial的演示代码,

import requests
payload = {'username': 'xxxx', 'password': 'xxxxx'}
r = requests.get('https://github.com/timeline.json')
Run Code Online (Sandbox Code Playgroud)

但我得到这个错误:AttributeError: easy_install

任何的想法?谢谢

use*_*342 25

这是位于当前目录或其他位置的无关requests.py(或requests.pyc)文件的典型症状PYTHONPATH.如果是这种情况,请删除或重命名它,因为它会影响您真正要导入的模块.


Mar*_*ers 13

您正在将requests模块中的所有名称导入到本地名称空间,这意味着您不需要为模块名称添加前缀:

>>> from requests import *
>>> get
<function get at 0x107820b18>
Run Code Online (Sandbox Code Playgroud)

如果您要使用import requests语句导入模块,则将模块本身添加到命名空间,并且必须使用全名:

>>> import requests
>>> requests.get
<function get at 0x102e46b18>
Run Code Online (Sandbox Code Playgroud)

请注意,上面的示例是我从解释器中的测试中获得的.如果得到不同的结果,则导入错误的模块; 检查requests.py你的python包中是否有额外的文件:

>>> import requests
>>> print requests.__file__
/private/tmp/requeststest/lib/python2.7/site-packages/requests/__init__.pyc
Run Code Online (Sandbox Code Playgroud)

您还可以测试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']
Run Code Online (Sandbox Code Playgroud)

  • 是的重复存在文件(requests.py)是问题,我写了一个名为requests.py的文件,这里我导入了"请求"模块.所以python引擎看起来是最近的一个方法,即当前文件名.解决方案是重命名我正在编写的文件. (3认同)
  • 谢谢,问题解决了,我删除了另一个请求目录,它可以工作 (2认同)

dsa*_*ger 6

如前所述,最常见的问题是requests.py文件中的某个位置PYTHONPATH

但是由于请求模块在内部使用其他模块(例如,来自标准python库的其他模块),因此其他文件名也可能存在问题。例如,当我命名一个脚本时,我遇到了同样的问题http.py。在这种情况下,的输出print dir(requests)是正确的,这使得跟踪错误变得更加困难。


小智 6

我有同样的错误。

我所做的就是将其另存为 requests.py

然后我将其另存为其他名称。问题解决了。