mirror of
https://github.com/RockChinQ/QChatGPT.git
synced 2024-11-15 19:22:24 +08:00
83 lines
2.1 KiB
Python
83 lines
2.1 KiB
Python
# QChatGPT 终端启动入口
|
||
# 在此层级解决依赖项检查。
|
||
# QChatGPT/main.py
|
||
|
||
asciiart = r"""
|
||
___ ___ _ _ ___ ___ _____
|
||
/ _ \ / __| |_ __ _| |_ / __| _ \_ _|
|
||
| (_) | (__| ' \/ _` | _| (_ | _/ | |
|
||
\__\_\\___|_||_\__,_|\__|\___|_| |_|
|
||
|
||
⭐️开源地址: https://github.com/RockChinQ/QChatGPT
|
||
📖文档地址: https://q.rkcn.top
|
||
"""
|
||
|
||
|
||
import asyncio
|
||
|
||
|
||
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)
|
||
|
||
# 检查配置文件
|
||
|
||
from pkg.core.bootutils import files
|
||
|
||
generated_files = await files.generate_files()
|
||
|
||
if generated_files:
|
||
print("以下文件不存在,已自动生成,请按需修改配置文件后重启:")
|
||
for file in generated_files:
|
||
print("-", file)
|
||
|
||
sys.exit(0)
|
||
|
||
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,且包含QChatGPT字符串
|
||
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 "QChatGPT/main.py" not in content:
|
||
invalid_pwd = True
|
||
if invalid_pwd:
|
||
print("请在QChatGPT项目根目录下以命令形式运行此程序。")
|
||
input("按任意键退出...")
|
||
exit(1)
|
||
|
||
loop = asyncio.new_event_loop()
|
||
|
||
loop.run_until_complete(main_entry(loop))
|