Repository navigation
Docker部署AstrBot启动失败:NumPy因X86_V2指令集不兼容触发RuntimeError #10569
What happened / 发生了什么通过Docker部署AstrBot项目时启动失败,核心报错为NumPy编译时依赖的X86_V2指令集在当前运行环境(Docker容器/宿主机)中不被支持,导致NumPy核心模块无法加载,进而中断项目模块导入流程,最终容器启动失败并退出。 完整错误Traceback: Reproduce / 如何复现?
AstrBot version, deployment method (e.g., Windows Docker Desktop deployment), provider used, and messaging platform used. / AstrBot 版本、部署方式(如 Windows Docker Desktop 部署)、使用的提供商、使用的消息平台适配器
OSLinux Logs / 报错日志[15:38:25] [Core] [DBUG] [platform.register:51]: 平台适配器 aiocqhttp 已注册 |
Replies: 4 comments
|
AstrBot 需要 numpy 依赖,可以考虑更换机器.. X86_V2 指令集已经相当普及了,除非你用的是很旧的 CPU |
|
同样遇到该问题,这里分享一下 Ubuntu 上手动编译无任何编译器优化版本的 Numpy 过程。 环境信息
步骤 1:安装编译依赖 sudo apt build-dep numpy步骤 2:克隆仓库并切换到目标版本 git clone https://github.com/numpy/numpy.git && cd numpy
git checkout v2.4.0步骤 3:编译(禁用所有指令集优化) 通过 python -m build --wheel \
-Csetup-args=-Dcpu-baseline="none" -Csetup-args=-Dcpu-dispatch="none"步骤 4:安装编译产物 编译完成后,wheel 文件位于 pip install /path/to/numpy/dist/numpy-2.4.0-cp312-cp312-linux_x86_64.whl --force-reinstall至此,问题解决。 Warning 通过这种方式安装 Numpy 以后,一定要使用 |
|
另外补充一些内容,部分云服务器可能采用了虚拟化技术,而虚拟化平台默认给虚拟机分配的虚拟 CPU 很可能故意隐藏宿主机的新指令集,只暴露一个最保守的指令集组合。 |
同样遇到该问题,这里分享一下 Ubuntu 上手动编译无任何编译器优化版本的 Numpy 过程。
环境信息
步骤 1:安装编译依赖
步骤 2:克隆仓库并切换到目标版本
步骤 3:编译(禁用所有指令集优化)
通过
-Dcpu-baseline="none"和-Dcpu-dispatch="none"参数,确保编译产物不依赖任何特定指令集:python -m build --wheel \ -Csetup-args=-Dcpu-baseline="none" -Csetup-args=-Dcpu-dispatch="none"步骤 4:安装编译产物
编译完成后,wheel 文件位于
dist/目录下,使用--force-reinstall覆盖原有安装:至此,问题解决。
Warning
通过这种方式安装 Numpy 以后,一定要使用
uv run --no-sync运行项目。