Skip to content

跨库加载导致异常 #41

@emofalling

Description

@emofalling

我按照教程更改了,使用./launchbot.bat(没用docker)运行,但是在NachoBotNachoBot-Napcat发生了诡异的跨库导入导致无法正常运行。它本应该加载venv下的库。
另外,我现有的python环境有3.11 3.13 3.14(主)。
NatchBot:

成功加载环境变量配置
04-12 19:15:29 [logger] 已启动日志清理任务将自动清理30天前的日志文件轮转份数限制: 30个文件04-12 19:15:29 [logger] 日志系统已初始化:
04-12 19:15:29 [logger]   - 控制台级别: INFO
04-12 19:15:29 [logger]   - 文件级别: DEBUG
04-12 19:15:29 [logger]   - 轮转份数: 30个文件|自动清理: 30天前的日志
04-12 19:15:30 [配置] NachoCore当前版本: 0.10.3
04-12 19:15:30 [配置] 未检测到bot_config模板默认值变动
04-12 19:15:30 [配置] 检测到bot_config配置文件版本号相同 (v6.20.0_bs),跳过更新
04-12 19:15:31 [配置] 未检测到topics_config模板默认值变动
04-12 19:15:31 [配置] 检测到topics_config配置文件版本号相同 (v6.20.0_bs),跳过更新
04-12 19:15:31 [配置] 未检测到model_config模板默认值变动
04-12 19:15:31 [配置] 检测到model_config配置文件版本号相同 (v1.9.0_bs),跳过更新
04-12 19:15:31 [配置] 正在品鉴配置文件...
04-12 19:15:31 [配置] 非常的新鲜非常的美味04-12 19:15:31 [local_storage] 正在阅读记事本......我在看我真的在看04-12 19:15:31 [local_storage] 全都记起来了!
╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮
│ D:\emofalling\NachoBot\NachoBot\bot.py:25 in <module>                                            │
│                                                                                                  │
│    22                                                                                            │
│    23 initialize_logging()                                                                       │
│    24                                                                                            │
│ ❱  25 from src.main import MainSystem  # noqa                                                    │26 from src.manager.async_task_manager import async_task_manager  # noqa                      │27                                                                                            │
│    28                                                                                            │
│                                                                                                  │
│ D:\emofalling\NachoBot\NachoBot\src\main.py:7 in <module>                                        │
│                                                                                                  │
│     4                                                                                            │
│     5 from src.common.remote import TelemetryHeartBeatTask                                       │
│     6 from src.manager.async_task_manager import async_task_manager                              │
│ ❱   7 from src.chat.utils.statistic import OnlineTimeRecordTask, StatisticOutputTask             │
│     8 from src.chat.advanced.advanced_idle_task import AdvancedIdleTimeoutTask                   │
│     9 from src.chat.emoji_system.emoji_manager import get_emoji_manager                          │
│    10 from src.chat.message_receive.chat_stream import get_chat_manager                          │
│                                                                                                  │
│ D:\emofalling\NachoBot\NachoBot\src\chat\__init__.py:6 in <module>                               │
│                                                                                                  │
│    3 包含聊天情绪记忆日程等功能模块                                                        │
│    4 """                                                                                         │
│    5                                                                                             │
│ ❱  6 from src.chat.message_receive.chat_stream import get_chat_manager                           │
│    7 from src.chat.emoji_system.emoji_manager import get_emoji_manager                           │
│    8                                                                                             │
│    9 # 导出主要组件供外部使用                                                                    │
│                                                                                                  │
│ D:\emofalling\NachoBot\NachoBot\src\chat\message_receive\__init__.py:1 in <module>               │
│                                                                                                  │
│ ❱  1 from src.chat.emoji_system.emoji_manager import get_emoji_manager                           │
│    2 from src.chat.message_receive.chat_stream import get_chat_manager                           │
│    3 from src.chat.message_receive.storage import MessageStorage                                 │
│    4                                                                                             │
│                                                                                                  │
│ D:\emofalling\NachoBot\NachoBot\src\chat\emoji_system\emoji_manager.py:13 in <module>            │
│                                                                                                  │
│     10 import binascii                                                                           │
│     11                                                                                           │
│     12 from typing import Optional, Tuple, List, Any                                             │
│ ❱   13 from PIL import Image                                                                     │
│     14 from rich.traceback import install                                                        │
│     15                                                                                           │
│     16 from src.common.database.database_model import Emoji                                      │
│                                                                                                  │
│ D:\Program Files\Python314\Lib\site-packages\PIL\Image.py:95 in <module>                         │
│                                                                                                  │
│     92 │   # import Image and use the Image.core variable instead.                               │
│     93 │   # Also note that Image.core is not a publicly documented interface,                   │
│     94 │   # and should be considered private and subject to change.                             │
│ ❱   95 │   from . import _imaging as core                                                        │
│     96 │                                                                                         │
│     97 │   if __version__ != getattr(core, "PILLOW_VERSION", None):                              │
│     98 │   │   msg = (                                                                           │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
ImportError: cannot import name '_imaging' from 'PIL' (D:\Program Files\Python314\Lib\site-packages\PIL\__init__.py)

NatchBot-Napcat:

2026-04-12 19:21:57.596 | INFO     | src.config.config:update_config:53 - 检测到配置文件版本号相同 (v0.1.2),跳过更新
2026-04-12 19:21:57.596 | INFO     | src.config.config:<module>:144 - 正在品鉴配置文件...
2026-04-12 19:21:57.598 | INFO     | src.config.config:<module>:146 - 非常的新鲜非常的美味2026-04-12 19:21:57 | INFO     | src:<module>:25 - 版本

Nachobot-Napcat-Adapter 版本: 0.5.5
喜欢的话点个star喵~

2026-04-12 19:21:57 | INFO     | src.database:_ensure_database:62 - 确保数据库文件和表已创建...
2026-04-12 19:21:57 | SUCCESS  | src.database:_ensure_database:64 - 数据库和表已创建或已存在
╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮
│ D:\emofalling\NachoBot\NachoBot-Napcat-Adapter\main.py:8 in <module>                             │
│                                                                                                  │
│     5 import time                                                                                │
│     6 import websockets as Server                                                                │
│     7 from src.logger import logger                                                              │
│ ❱   8 from src.recv_handler.message_handler import message_handler                               │
│     9 from src.recv_handler.meta_event_handler import meta_event_handler                         │
│    10 from src.recv_handler.notice_handler import notice_handler                                 │
│    11 from src.recv_handler.message_sending import message_send_instance                         │
│                                                                                                  │
│ D:\emofalling\NachoBot\NachoBot-Napcat-Adapter\src\recv_handler\message_handler.py:3 in <module> │
│                                                                                                  │
│     1 from src.logger import logger                                                              │
│     2 from src.config import global_config                                                       │
│ ❱   3 from src.utils import (                                                                    │
│     4get_group_info,                                                                        │
│     5get_member_info,                                                                       │
│     6get_image_base64,                                                                      │
│                                                                                                  │
│ D:\emofalling\NachoBot\NachoBot-Napcat-Adapter\src\utils.py:13 in <module>                       │
│                                                                                                  │
│    10 from .logger import logger                                                                 │
│    11 from .response_pool import get_response                                                    │
│    12                                                                                            │
│ ❱  13 from PIL import Image                                                                      │
│    14 from typing import Union, List, Tuple, Optional                                            │
│    15                                                                                            │
│    16                                                                                            │
│                                                                                                  │
│ D:\Program Files\Python314\Lib\site-packages\PIL\Image.py:95 in <module>                         │
│                                                                                                  │
│     92# import Image and use the Image.core variable instead.                               │93# Also note that Image.core is not a publicly documented interface,                   │94# and should be considered private and subject to change.                             │
│ ❱   95from . import _imaging as core                                                        │
│     96 │                                                                                         │
│     97if __version__ != getattr(core, "PILLOW_VERSION", None):                              │
│     98 │   │   msg = (                                                                           │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
ImportError: cannot import name '_imaging' from 'PIL' (D:\Program Files\Python314\Lib\site-packages\PIL\__init__.py)

在自己的Python3.14环境下from PIL import Image是不出问题的。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions