Tweepy和Twitter无法一起工作

时间:2014-01-11 14:58:39

标签: python twitter tweepy

编辑:我设法通过使用virtualenv使Twitter工作。但是,我仍然想解决这个问题。

我成功安装并使用了Tweepy。但是,当我尝试仅使用Twitter API时,我收到以下错误

AttributeError: 'module' object has no attribute 'oauth'

我使用的代码来自Mining the Social Web,第2版:

import twitter

def oauth_login():
    # XXX: Go to http://twitter.com/apps/new to create an app and get values
    # for these credentials that you'll need to provide in place of these
    # empty string values that are defined as placeholders.
    # See https://dev.twitter.com/docs/auth/oauth for more information 
    # on Twitter's OAuth implementation.

    CONSUMER_KEY = ''
    CONSUMER_SECRET = ''
    OAUTH_TOKEN = ''
    OAUTH_TOKEN_SECRET = ''

    auth = twitter.oauth.OAuth(OAUTH_TOKEN, OAUTH_TOKEN_SECRET,
                               CONSUMER_KEY, CONSUMER_SECRET)

    twitter_api = twitter.Twitter(auth=auth)
    return twitter_api

以下调用后会显示错误:

twitter_api = oauth_login() 
print twitter_api

我安装了oauth,但我无法弄清楚发生了什么。我需要安装Tweepy,因为我已经编写了大量与Tweepy一起使用的代码,我猜这个问题源于安装了Tweepy。

编辑:本书中的代码使用https://github.com/sixohsix/twitter

1 个答案:

答案 0 :(得分:0)

在最新版本的Tweepy中,OAuth是通过创建新的OAuthHandler实例来执行的 - 没有OAuth类。此外,OAuthHandler包含在auth包中,而不在oauth包中。最后,所有四个身份验证密钥都不会传递给构造函数 - 使用set_access_token方法设置访问令牌和访问令牌密钥。

您的代码应如下所示:

auth = tweepy.auth.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(OAUTH_TOKEN, OAUTH_TOKEN_SECRET)