You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux环境下Django Rest API执行migrate时出现ModuleNotFoundError: No module named 'onesignal_client'问题求助

解决 ModuleNotFoundError: No module named 'onesignal_client' 错误

看起来你遇到的问题是因为安装的旧版onesignal包依赖一个未安装(或已下架)的onesignal_client模块,同时你安装的onesignal_sdk是另一个独立的SDK包,两者不兼容导致了依赖冲突。下面是具体的解决步骤:

第一步:清理冲突的现有包

首先卸载已经安装的两个OneSignal相关包,避免版本和依赖冲突:

sudo pip3.9 uninstall -y onesignal onesignal_sdk

(用pip3.9确保和你运行python3.9 manage.py的Python环境完全一致,避免环境不一致导致的安装失效)

第二步:安装官方维护的OneSignal SDK(推荐)

目前官方持续维护的Python SDK是onesignal-sdk,这个包没有遗留依赖问题,功能也更完整。执行安装命令:

sudo pip3.9 install onesignal-sdk

第三步:调整代码中的导入语句

修改你myapp_notifications/helpers.py中的导入代码,适配官方SDK的结构:
原来的:

import onesignal as onesignal_sdk

替换为官方SDK的正确导入方式(可根据你需要使用的功能调整):

from onesignal_sdk.client import OneSignal
from onesignal_sdk.error import OneSignalHTTPError

之后按照官方SDK的规范初始化客户端、调用接口即可。

错误原因说明

你安装的onesignal包是一个多年未维护的第三方包(最后更新在2018年),它的内部代码硬依赖onesignal_client模块,但这个模块要么没有被自动安装,要么已经从PyPI下架/改名。而你同时安装的onesignal_sdk是另一个独立的实现,和这个旧包没有关联,所以无法解决依赖缺失问题。使用官方维护的SDK是最稳妥的解决方案。

内容的提问来源于stack exchange,提问作者Ananth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 21:33:10