import asyncio # LangBot 终端启动入口 # 在此层级解决依赖项检查。 # LangBot/main.py asciiart = r""" _ ___ _ | | __ _ _ _ __ _| _ ) ___| |_ | |__/ _` | ' \/ _` | _ \/ _ \ _| |____\__,_|_||_\__, |___/\___/\__| |___/ ⭐️开源地址: https://github.com/RockChinQ/LangBot 📖文档地址: https://docs.langbot.app """ async def main_entry(loop: asyncio.AbstractEventLoop): print(asciiart) import sys # 检查依赖 from pkg.core.bootutils import deps missing_deps = await deps.check_deps() if missing_deps: print('以下依赖包未安装,将自动安装,请完成后重启程序:') for dep in missing_deps: print('-', dep) await deps.install_deps(missing_deps) print('已自动安装缺失的依赖包,请重启程序。') sys.exit(0) # check plugin deps await deps.precheck_plugin_deps() # 检查pydantic版本,如果没有 pydantic.v1,则把 pydantic 映射为 v1 import pydantic.version if pydantic.version.VERSION < '2.0': import pydantic sys.modules['pydantic.v1'] = pydantic # 检查配置文件 from pkg.core.bootutils import files generated_files = await files.generate_files() if generated_files: print('以下文件不存在,已自动生成:') for file in generated_files: print('-', file) from pkg.core import boot await boot.main(loop) if __name__ == '__main__': import os import sys # 必须大于 3.10.1 if sys.version_info < (3, 10, 1): print('需要 Python 3.10.1 及以上版本,当前 Python 版本为:', sys.version) input('按任意键退出...') exit(1) # 检查本目录是否有main.py,且包含LangBot字符串 invalid_pwd = False if not os.path.exists('main.py'): invalid_pwd = True else: with open('main.py', 'r', encoding='utf-8') as f: content = f.read() if 'LangBot/main.py' not in content: invalid_pwd = True if invalid_pwd: print('请在 LangBot 项目根目录下以命令形式运行此程序。') input('按任意键退出...') exit(1) loop = asyncio.new_event_loop() loop.run_until_complete(main_entry(loop))