2013-12-16 60 views
3

我有以下簡單的片斷這之前工作得很好,但現在的心不是:Tweepy錯誤 - 類型錯誤:__init __()失蹤1個人需要的位置參數:「聽衆」

import sys 
import tweepy 

# Consumer keys and access tokens, used for OAuth 
consumer_key="" 
consumer_secret="" 
access_key = "" 
access_secret = "" 

auth = tweepy.OAuthHandler(consumer_key, consumer_secret) 
auth.set_access_token(access_key, access_secret) 
api = tweepy.API(auth) 


class CustomStreamListener(tweepy.StreamListener): 
    def on_status(self, status): 
     print >>status.text 

    def on_error(self, status_code): 
     print >>sys.stderr, 'Encountered error with status code:', status_code 
     return True # Don't kill the stream 

    def on_timeout(self): 
     print >>sys.stderr, 'Timeout...' 
     return True # Don't kill the stream 

sapi = tweepy.streaming.Stream(auth, CustomStreamListener()) 
sapi.filter(locations=[-180,-90,180,90]) 

此代碼應打印來自全國各地的鳴叫世界。但是,我收到錯誤:

sapi = tweepy.streaming.Stream(auth, CustomStreamListener()) 
TypeError: __init__() missing 1 required positional argument: 'listener' 

請大家幫忙,謝謝!

編輯:

因此,我改變

sapi = tweepy.streaming.Stream(auth, CustomStreamListener()) 

到:

sapi = tweepy.streaming.Stream(auth, listener=CustomStreamListener()) 

,現在我得到以下(類似的)錯誤:

sapi = tweepy.streaming.Stream(auth, listener=CustomStreamListener()) 
TypeError: __init__() missing 1 required positional argument: 'password' 

也許這將讓某人洞察什麼是在這裏,因爲我不知道。

感謝

+0

請添加完整跟蹤 – alko

+0

即完整跟蹤 – user1452494

+1

沒有文件,沒有調用堆棧? – alko

回答

0

我認爲這個問題是您正在使用Tweepy過時的版本。你的代碼是正確的,但老版本的Tweepy對於Stream類有不同的構造函數(它需要傳遞用戶名和密碼,而不是OAuthHandler實例)。

版本2.2是最新的(它在PyPI上)。你的代碼應該可以正確使用它。

相關問題