2013-12-16 5 views
3

У меня есть следующий простой фрагмент код, который работал отлично, но теперь Isnt:Tweepy ошибка - TypeError: __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' 

Пожалуйста, помогите и спасибо!

EDIT:

Так я изменил

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). Ваш код должен работать с ним правильно.

Смежные вопросы