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

pip已装django-grappelli但Django提示模块找不到如何解决

问题场景

已激活Django项目专属虚拟环境,在环境内执行pip命令安装django-grappelli:

pip install django-grappelli

安装后执行pip list,返回列表中显示django-grappelli 3.0.3已安装:

Package          Version
---------------- -------
asgiref          3.5.2
Django           4.0.5
django-grappelli 3.0.3
pip              22.1.2
psycopg2         2.9.3
setuptools       58.1.0
sqlparse         0.4.2
tzdata           2022.1 

按照官方文档完成两步配置:

  1. 在settings.py的INSTALLED_APPS中将'grappelli'放在'django.contrib.admin'之前:
INSTALLED_APPS = (
    'grappelli',
    'django.contrib.admin',
)
  1. 添加URL路由配置:
from django.conf.urls import include

urlpatterns = [
    path('grappelli/', include('grappelli.urls')), # grappelli URLS
    path('admin/', admin.site.urls), # admin site
]

配置完成后执行py manage.py check,抛出错误:
ModuleNotFoundError: No module named 'grappelli'
手动查看虚拟环境下的Lib/site-packages目录,未找到django-grappelli相关文件;进入Python交互环境尝试导入grappelli、django-grappelli均提示模块不存在。
当前运行环境为Windows系统,Python版本3.10.4,此前在其他简单Django项目中使用django-grappelli未遇到同类问题。
项目目录结构参考

排查方向与解决方案
  • 验证pip与Python解释器绑定关系
    Windows环境下虚拟环境激活后常出现环境变量优先级问题,导致调用的pip、python不是当前虚拟环境版本。在激活虚拟环境的终端中分别执行where pip和where python,确认返回的第一条路径都在当前虚拟环境的Scripts目录下。如果路径不匹配,直接使用解释器调用pip的方式强制安装,彻底规避路径错乱问题:
    python -m pip install django-grappelli
    
    该方式可保证包安装到当前执行命令的Python解释器对应的site-packages目录中。
  • 处理安装过程文件写入异常
    如果路径匹配但site-packages下无grappelli文件夹,属于pip安装时权限不足,文件写入失败但仅记录了安装元数据,导致pip list误判已安装。先执行pip uninstall -y django-grappelli清理残留,以管理员身份重新打开终端,激活虚拟环境后重新执行安装,安装完成后进入虚拟环境的Lib\site-packages目录确认存在grappelli文件夹即可。

    注意:pip安装包名为django-grappelli,Python实际导入的模块名是grappelli,带横杠的包名无法直接导入。

  • 修复虚拟环境激活失效问题
    执行以下命令打印Python加载路径:
    python -c "import sys; print('\n'.join(sys.path))"
    
    如果输出路径中不包含当前虚拟环境的site-packages目录,说明虚拟环境激活逻辑损坏。直接删除原有虚拟环境文件夹,执行以下命令重新创建虚拟环境,再重装所有依赖:
    py -3.10 -m venv venv
    
    同时在Windows「管理应用执行别名」设置中关闭Python相关的应用商店别名,避免系统自带的应用商店Python抢占路径优先级,导致解释器调用错乱。
  • 修正IDE运行配置
    如果终端下执行python manage.py check正常,但IDE中运行报错,说明IDE的Python解释器未选中当前虚拟环境版本,在IDE的项目解释器设置中,手动选择虚拟环境Scripts目录下的python.exe即可。
  • 修正Django4.0+兼容问题
    当前使用的Django版本为4.0+,include和path都需要从django.urls导入,现有路由文件的导入语句有误,解决模块找不到的问题后需要修正导入逻辑,否则会触发后续导入错误:
    from django.urls import include, path
    from django.contrib import admin
    
    urlpatterns = [
        path('grappelli/', include('grappelli.urls')),
        path('admin/', admin.site.urls),
    ]
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 23:36:22