mirror of
https://github.com/nonebot/nonebot2.git
synced 2024-12-01 01:25:07 +08:00
80 lines
2.0 KiB
Plaintext
80 lines
2.0 KiB
Plaintext
|
---
|
|||
|
sidebar_position: 0
|
|||
|
description: 创建并运行项目
|
|||
|
|
|||
|
options:
|
|||
|
menu:
|
|||
|
weight: 20
|
|||
|
category: guide
|
|||
|
---
|
|||
|
|
|||
|
import Asciinema from "@site/src/components/Asciinema";
|
|||
|
|
|||
|
# 创建项目
|
|||
|
|
|||
|
可以使用 `nb-cli` 或者自行创建完整的项目目录:
|
|||
|
|
|||
|
```bash
|
|||
|
nb create
|
|||
|
```
|
|||
|
|
|||
|
<Asciinema
|
|||
|
url="https://asciinema.org/a/464654.cast"
|
|||
|
options={{ theme: "monokai", startAt: 4.5, poster: "npt:6.5" }}
|
|||
|
/>
|
|||
|
|
|||
|
## 目录结构
|
|||
|
|
|||
|
```tree title=Project
|
|||
|
📦 AweSome-Bot
|
|||
|
├── 📂 awesome_bot # 或是 src
|
|||
|
│ └── 📜 plugins
|
|||
|
├── 📜 .env # 可选的
|
|||
|
├── 📜 .env.dev # 可选的
|
|||
|
├── 📜 .env.prod # 可选的
|
|||
|
├── 📜 .gitignore
|
|||
|
├── 📜 bot.py
|
|||
|
├── 📜 docker-compose.yml
|
|||
|
├── 📜 Dockerfile
|
|||
|
├── 📜 pyproject.toml
|
|||
|
└── 📜 README.md
|
|||
|
```
|
|||
|
|
|||
|
- `awesome_bot/plugins` 或 `src/plugins`: 用于存放编写的 bot 插件
|
|||
|
- `.env`、`.env.dev`、`.env.prod`: 各环境配置文件
|
|||
|
- `bot.py`: bot 入口文件
|
|||
|
- `pyproject.toml`: 项目插件配置文件
|
|||
|
- `Dockerfile`、`docker-compose.yml`: Docker 镜像配置文件
|
|||
|
|
|||
|
## 启动 Bot
|
|||
|
|
|||
|
:::warning 提示
|
|||
|
如果您使用如 `VSCode` / `PyCharm` 等 IDE 启动 nonebot,请检查 IDE 当前工作空间目录是否与当前侧边栏打开目录一致。
|
|||
|
|
|||
|
> 注意: 在二者不一致的环境下可能导致 nonebot 读取配置文件和插件等不符合预期
|
|||
|
|
|||
|
:::
|
|||
|
|
|||
|
1. 通过 nb-cli
|
|||
|
|
|||
|
```bash
|
|||
|
nb run [--file=bot.py] [--app=app]
|
|||
|
```
|
|||
|
|
|||
|
其中 `--file` 参数可以指定 bot 入口文件,默认为 `bot.py`,`--app` 参数可以指定 asgi server,默认为 `app`。
|
|||
|
|
|||
|
<Asciinema
|
|||
|
url="https://asciinema.org/a/464654.cast"
|
|||
|
options={{ theme: "monokai", startAt: 15.3, poster: "npt:20.3" }}
|
|||
|
/>
|
|||
|
|
|||
|
2. 直接通过 Python 启动
|
|||
|
|
|||
|
```bash
|
|||
|
python bot.py
|
|||
|
```
|
|||
|
|
|||
|
:::tip 提示
|
|||
|
如果在 bot 入口文件内定义了 asgi server,nb-cli 将会为你启动**冷重载模式**(当文件发生变动时自动重启 NoneBot2 实例)
|
|||
|
:::
|