Tweepy 属性错误

Tweepy Attribute Error

我是 python 和 tweepy 的新手,收到一条我无法真正理解的错误消息:

import json
from tweepy import Cursor
from twitter_client import get_twitter_client

if __name__ == '__main__':
    client = get_twitter_client()

    with open('home_timeline.jsonl', 'w') as f:
        for page in Cursor(client.home_timeline, count=200).pages(4):
            for status in page:
                f.write(json.dumps(status._json)+"\n")

运行 此代码给出以下错误消息:

Traceback (most recent call last):
  File "twitter_get_user_timeline.py", line 10, in <module>
    for page in Cursor(client.home_timeline, count=200).pages(4):
  File "/home/projects/webscraping/testEnv/lib/python3.5/site-packages/tweepy/cursor.py", line 49, in __next__
    return self.next()
  File "/home/projects/webscraping/testEnv/lib/python3.5/site-packages/tweepy/cursor.py", line 108, in next
    data = self.method(max_id=self.max_id, parser=RawParser(), *self.args, **self.kargs)
  File "/home/projects/webscraping/testEnv/lib/python3.5/site-packages/tweepy/binder.py", line 239, in _call
    return method.execute()
  File "/home/projects/webscraping/testEnv/lib/python3.5/site-packages/tweepy/binder.py", line 174, in execute
    auth = self.api.auth.apply_auth()
AttributeError: 'function' object has no attribute 'apply_auth'

由于这对 Tweepy 非常深入,我无法真正理解我在代码中的错误所在(代码来自书:Marco Bonzanini:"Mastering Social Media Mining with Python")。有人知道这里出了什么问题吗?

认证在导入的twitter_client中完成。那里的代码是:

import os
import sys
from tweepy import API
from tweepy import OAuthHandler

def get_twitter_auth():
    """Setup Twitter authentication.
      Return: tweepy.OAuthHandler object
    """
    try:
        consumer_key = os.environ['TWITTER_CONSUMER_KEY']
        consumer_secret = os.environ['TWITTER_CONSUMER_SECRET']
        access_token = os.environ['TWITTER_ACCESS_TOKEN']
        access_secret = os.environ['TWITTER_ACESS_SECRET']

    except KeyError:
        sys.stderr.write("TWITER_* environment variables not set\n")
        sys.exit(1)
    auth = OAuthHandler(consumer_key, consumer_secret)
    auth.set_access_token(access_token, access_secret)
    return auth

def get_twitter_client():
    """Setup Twitter API client

     Return: tweepy.API object
     """
    auth = get_twitter_auth
    client = API(auth)
    return client 

非常感谢您的建议!

在第二个文件中,函数 get_twitter_client,行 auth = get_twitter_auth

您正在 auth 中保存 get_twitter_auth 函数 而不是 返回值

auth = get_twitter_auth()

修复