如何从另一个运行的python脚本中获取函数的输出?

如何从另一个运行的python脚本中获取函数的输出?,python,flask,message-queue,discord.py,Python,Flask,Message Queue,Discord.py,我目前正在运行两个独立的python脚本,一个用于Flask webapp,另一个用于discord.py bot。在flask webapp上接收到传入请求后,我想调用discord.py脚本中的函数,并将其输出返回到视图 目前这两个脚本都处于阻塞状态,因此我对使用redis消息传递队列在彼此之间传递请求感兴趣,比如包 webapp.py: from flask import Flask app = Flask(__name__) @app.route("/") def index():

我目前正在运行两个独立的python脚本,一个用于Flask webapp,另一个用于discord.py bot。在flask webapp上接收到传入请求后,我想调用discord.py脚本中的函数,并将其输出返回到视图

目前这两个脚本都处于阻塞状态,因此我对使用redis消息传递队列在彼此之间传递请求感兴趣,比如包

webapp.py:

from flask import Flask
app = Flask(__name__)

@app.route("/")
def index():
    user = get_user(123456789) # get_user function from bot.py
    return "Hello, {0}".format(user.name)

if __name__ == "__main__":
    app.run()
bot.py:

import discord

client = discord.Client()

async def get_user(user_id):
    user = await client.get_user_info(user_id)
    return user

if __name__ == "__main__":
    client.run("bot token")

我不知道如何完成这项任务,或者Kombu是否真的是一条路要走。如何实现flask webapp,以便调用discord.py bot中的函数?

使用其他文件中的导入函数

从bot导入获取用户


确保两个文件都在同一个目录中。

看起来您根本不想使用discord机器人,您只想与API交互以检索信息。您可能想深入了解get_user_info协同程序的内部工作原理,完全避免使用bot,而是自己向API发出请求。我只是使用get_user_info函数作为一个小示例。我打算将我的bot.py脚本中的一些函数与flask脚本共享,这比获取API并返回结果需要做更多的工作@Patrick HaughI认为将discord bot与Web服务器完全分离的解决方案可能是最好的。让两者通过一些消息传递协议web请求、套接字IO、队列等进行交互。。您应该能够创建新的事件监听器,您可以使用discord.py bot注册这些监听器,以获得类似于on_message的功能。目前,这两个脚本彼此独立运行。我正在研究像kombu和rq这样的库来实现redis队列。但我不知道如何着手实施它。是否有任何示例可以实现消息队列来调用第二个脚本中的函数,从而将结果返回给第一个脚本@帕特里克豪