如何一次从一个文件启动多个py文件(2个Discord机器人)

时间:2020-06-28 19:56:59

标签: python discord.py

我想知道如何从主app.py文件中一次运行两个不和谐的机器人。

在我杀死该进程(主文件进程)之后,它们都将停止。

尝试了os.system,无法正常工作。尝试了多个子进程。Popen无效。 我在做错什么吗?

我该怎么做?

2 个答案:

答案 0 :(得分:0)

我认为,好的设计是每个.py文件都拥有一个bot。如果他们俩都需要app.py中的代码,那么他们应该“导入”公共代码。这样就可以同时运行bot1.py和bot2.py。

答案 1 :(得分:0)

您可以在python中使用subprocessLink 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个机器人准备就绪。

结果:

Result

P.S。您将遇到一个问题:一个机器人如果看不到为另一个机器人运行的命令,则会发出错误。这是调试的大问题。对不起,我的英语不好:)