【问题标题】:module object has no attribute oauth模块对象没有属性 oauth
【发布时间】:2014-10-26 00:59:29
【问题描述】:

我正在尝试使用 twitter 库来提取一些推文,但我无法正确获得我的授权。这是我的代码

import twitter
consumer_key = ''
consumer_secret = ''
access_token = '' 
access_secret = ''
t = Twitter( auth = OAuth(access_token, access_secret, consumer_key, consumer_secret))
api = twitter.Twitter( auth = auth )
print api

它正在抛出 AttributeError:'module' object has no attribute 'oauth'。我只是从 twitter 帮助中粘贴代码,但为什么它不起作用?

【问题讨论】:

  • 请显示完整的回溯。
  • 您使用的是哪种 API 以及哪种 OAuth 方法?

标签: python twitter oauth


【解决方案1】:

在不知道您使用的是哪个库的情况下,我假设您使用的是this one,因为语法看起来相同。抛出的错误表明您没有导入处理 oauth 的模块。您可以通过将其添加到代码顶部来导入所有模块:

from twitter import *

这不是真的推荐,因为您可能不需要库中的每个模块,所以只需导入您需要的模块,例如:

from twitter import oauth

【讨论】:

  • 另外,OP 可能混合了twitterpython-twitter,安装了一个并尝试使用另一个。
  • 我只安装了 twitter 而没有安装 python-twitter。所以它们之间没有混合。
  • @ssbrewster 我使用了两个选项中的第一个(因为我也在从 twitter 导入 Twitter)。现在它在文件 m1.py 的第 7 行中抛出一个名为“twitter 未定义”的不同错误,即在 api = twitter.Twitter(auth = auth) 行中
  • 我认为您可能只写api = t(auth=auth),因为您已将创建的Twitter 类的实例分配给变量t。您从文档的哪个部分获取代码?
  • @ssbrewster:来自 twitter 导入 * 有效。我犯了一个愚蠢的错误。你的建议很好用。还有一个问题,我的代码中 t 和 api 有什么区别?
【解决方案2】:

当我使用 import twitter 时,我需要在任何类名或属于模块 twitter 的任何类的任何函数前面添加 twitter 后缀。这是正确的代码:

import twitter
consumer_key = ''
consumer_secret = ''
access_token = ''
access_token_secret = ''
t = twitter.Twitter( auth = twitter.oauth.OAuth(access_token, access_token_secret, consumer_key, consumer_secret))
print t

【讨论】:

    猜你喜欢
    • 2014-01-25
    • 1970-01-01
    • 1970-01-01
    • 2017-03-29
    • 2013-02-13
    • 2010-11-18
    • 2019-01-03
    • 2017-05-19
    相关资源
    最近更新 更多