试图在tkinter.label上显示TweepyStreamListener tk崩溃而没有错误

问题描述

我试图在tk.label中显示Tweepy流(转换后的比特很少)。 我真的很不擅长Python,但也许有些人可以帮助我。

我想做的事情是分析具有给定关键字的人员的tweet,但是将这个变化的数字转换为tklabel。

对于分析,我使用了Textblob。通过textblob,我分析了给定Tweet的情绪。

我要解决的问题是我找不到启动流(让其运行)和启动tk ui的方法

流启动时,Tk应用程序崩溃。

到目前为止,这是我的代码

root = tk.Tk()
HEIGHT = 700
WIDTH = 800


class MyStreamListener(tweepy.StreamListener):

    auth = tweepy.OAuthHandler("+++","+++")
    auth.set_access_token("+++","+++")

    api = tweepy.API(auth)

    sentiment= 0
    i = 0
    text = tk.StringVar()
    text.set("Test")

    def ui(self):
        self.canvas = tk.Canvas(root,height=HEIGHT,width=WIDTH)
        self.frame = tk.Frame(root,bg='#80c1ff',bd=5)
        self.lower_frame = tk.Frame(root,bd=10)
        self.button = tk.Button(self.frame,text="Start",font=40,command=self.start_Stream)
        self.label = tk.Label(self.lower_frame,textvariable=self.text)
        self.entry = tk.Entry(self.frame,font=40)

        self.frame.place(relx=0.5,rely=0.1,relwidth=0.75,relheight=0.1,anchor='n')
        self.lower_frame.place(relx=0.5,rely=0.25,relheight=0.6,anchor='n')
        self.entry.place(relwidth=0.65,relheight=1)
        self.button.place(relx=0.7,relwidth=0.3,relheight=1)
        self.label.place(relwidth=1,relheight=1)
        self.canvas.pack()
        root.mainloop()

    def changeText(self,newText):
        self.text.set(newText)

    #def clean_tweet(self,tweet):
    # return ''.join(re.sub("(@[A-Za-z0]+)|([^0-9A-Za- \t])|(\w+:\/\/\S+)"," ",tweet).split())

    def analyseSentiment(self,text):

        blob = TextBlob(text)
        sentimentA = []

        for scentence in blob.sentences:
            sentimentA.append(scentence.sentiment.polarity)

        sentimentAll = np.mean(sentimentA)
        return sentimentAll

    def on_status(self,status):

        MyStreamListener.sentiment = MyStreamListener.sentiment + MyStreamListener.analyseSentiment(self,status.text)
        MyStreamListener.changeText(self,MyStreamListener.sentiment)

    def on_error(self,status_code):
        if status_code == 420:
            return False

    def start_Stream(self):
        myStreamListener = MyStreamListener()
        myStream = tweepy.Stream(auth=MyStreamListener.auth,listener=myStreamListener)
        myStream.filter(track=['Corona'])


app = MyStreamListener()
app.ui()

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)