0

我有一个用 Python 编写的脚本,可以让我将来自终端的推文消费到本地托管的 mongodb 数据库中。为了提高正常运行时间,我想在 Heroku 上远程托管这个脚本,并将消费的推文拍摄到由 MongoHQ 托管的数据库中。因为我想在不使用 Django 的情况下执行此操作,所以我使用 Flask 框架将应用程序部署到 Heroku(此处描述:https ://devcenter.heroku.com/articles/python )。

当我使用这个设置运行一个简单的“hello world”应用程序时,一切都很好。但是,当我尝试运行我的推文消费应用程序时,它会立即崩溃。如何将我的应用程序更改为可以与 Flask/Heroku/MongoHQ 设置一起使用?源代码是:

import json
import pymongo
import tweepy

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 __init__(self, api):
        self.api = api
        super(tweepy.StreamListener, self).__init__()

        self.db = pymongo.MongoClient().test

    def on_data(self, tweet):
        self.db.tweets.insert(json.loads(tweet))

    def on_error(self, status_code):
        return True # Don't kill the stream

    def on_timeout(self):
        return True # Don't kill the stream


sapi = tweepy.streaming.Stream(auth, CustomStreamListener(api))
sapi.filter(track=['rooney'])

我对编程完全陌生,所以我想这个问题的解决方案可能很简单。但是,我被困住了,真的可以使用一些帮助来取得进步。

4

1 回答 1

0

没有更多信息很难调试,但我的第一个猜测是你没有安装依赖项。

Heroku 为您提供了一个干净的 python 环境。但是,您需要tweepy默认不安装的特殊库。因此,您必须让 Heroku 知道安装这些。

您需要使用 pip 和 requirements.txt 文档,其中列出了您尝试使用的所有库以及版本号。

https://devcenter.heroku.com/articles/python-pip

于 2013-08-09T23:26:50.117 回答