首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有办法阻止用runpy.run_module启动的模块(“模块”)?

有没有办法阻止用runpy.run_module启动的模块(“模块”)?
EN

Stack Overflow用户
提问于 2021-08-25 19:10:19
回答 1查看 64关注 0票数 0

我正在尝试启动一个位于不同py文件中的discord.py机器人,它可以成功地让机器人启动,但是我不知道启动脚本后如何退出/停止它。如果我在shell中,ctrl+c可以工作,但是我有一个运行模块的pyqt脚本,我希望保持启动程序不关闭它。

代码语言:javascript
复制
@click.group(invoke_without_command=True, options_metavar='[options]')
@click.pass_context
@click.option('-c', '--cli', help='launch hangoutcore without a gui.', is_flag=True)
def main(ctx, cli):
    """Launches the bot."""
    if ctx.invoked_subcommand is None:
        # since cli is a bool we can pass it as an environment variable so it can be accessed by any code running in this session.
        os.environ["bot_CLI"] = str(cli)
        print(os.environ["bot_CLI"])
        if not cli:
            try:
                qasync.run(botLauncher())
            except asyncio.exceptions.CancelledError as e:
                print(e)
        else:
            try:
                hangoutcore = runpy.run_module('hangoutcore')
                print(hangoutcore)

            except SystemExit as exception:
                exitcode = exception.code
            else:
                exitcode = 0
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-25 19:15:03

最好是重构你的hangoutcore,只有当你调用它中的某件东西时,才能做重要的事情。

代码语言:javascript
复制
import discordpy, eris, apple, fnord

# ... lots of bot logic

def run():
   ...

然后你就可以

代码语言:javascript
复制
import hangoutcore

无论何时,然后打电话

代码语言:javascript
复制
hangoutcore.run()

当你想做主要事情的时候。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68928626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档