我想知道如何从主app.py文件中一次运行两个不和谐的机器人。
在我杀死该进程(主文件进程)之后,它们都将停止。
尝试了os.system,无法正常工作。尝试了多个子进程。Popen无效。 我在做错什么吗?
我该怎么做?
答案 0 :(得分:0)
我认为,好的设计是每个.py文件都拥有一个bot。如果他们俩都需要app.py中的代码,那么他们应该“导入”公共代码。这样就可以同时运行bot1.py和bot2.py。
答案 1 :(得分:0)
您可以在python中使用subprocess
。 Link for docs示例:
bot1.py
import discord
from discord.ext import commands
client = commands.Bot(command_prefix='!')
@client.event
async def on_ready():
print("Ready bot1")
@client.command()
async def command1(ctx):
await ctx.send("Bot1")
client.run('TOKEN')
bot2.py
import discord
from discord.ext import commands
client = commands.Bot(command_prefix='!')
@client.event
async def on_ready():
print("Ready bot2")
@client.command()
async def command2(ctx):
await ctx.send("Bot2")
client.run('TOKEN')
main.py
import subprocess
subprocess.Popen('python bot1.py')
subprocess.Popen('python bot2.py')
在命令行中:python main.py
,等待2个机器人准备就绪。
结果:
P.S。您将遇到一个问题:一个机器人如果看不到为另一个机器人运行的命令,则会发出错误。这是调试的大问题。对不起,我的英语不好:)