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

Django项目导入guardian.shortcuts遇ModuleNotFoundError求助

解决ModuleNotFoundError: No module named 'guardian.shortcuts'问题

问题根源

你安装的guardian(0.2.2)是非常老旧的版本,该版本不存在guardian.shortcuts模块;而django-guardian(2.4.0)是适配现代Django的正确版本,但你的Python环境中旧版本guardian的优先级更高,导致实际导入的是旧包而非新版django-guardian。

解决方案

  • 彻底卸载旧版本guardian
    执行命令:
    pip uninstall -y guardian
    
  • 安装适配Django2.0.7的django-guardian版本
    Django2.0.x兼容的django-guardian推荐选2.3.0版本(2.4.0也可兼容,若出现问题可回退到2.3.0),执行:
    pip install django-guardian==2.3.0
    
  • 验证安装结果
    进入Python交互环境,执行以下代码确认:
    import guardian
    print(guardian.__version__)  # 应输出2.3.0或你安装的兼容版本
    print(guardian.__file__)     # 路径需指向django-guardian的安装目录
    from guardian.shortcuts import assign_perm, remove_perm  # 此时应能成功导入
    
  • 配置Django项目
    在项目settings.py的INSTALLED_APPS中添加:
    INSTALLED_APPS = [
        # ... 其他已配置应用
        'guardian',
    ]
    

额外说明

  • 旧版guardian与新版django-guardian是同一项目的不同命名阶段,当前官方包名为django-guardian,禁止同时安装两个版本,否则会引发包冲突。
  • Django2.0.7属于老旧版本,安装依赖时需明确选择兼容该版本的包,避免出现未知兼容性问题。

内容的提问来源于stack exchange,提问作者RA.IBOY

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 02:10:57