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

Django运行runserver后/admin/login/出现ImportError无法导入Session

解决Django中ImportError: cannot import name 'Session'的问题

嘿,我之前也碰到过类似的错误,这个问题一般是Django内置的sessions模块在导入Session模型时出了状况,给你几个可行的解决方案,按顺序试试应该能搞定:

1. 先排查Django安装是否损坏

报错的位置是django/contrib/sessions/backends/db.py第23行,正常情况下这行代码是从django.contrib.sessions.models导入Session类的。如果导入失败,很大概率是你的Django安装文件有缺失或者被损坏了。

你可以试着重新安装对应版本的Django:

pip uninstall django
pip install django==2.0.5

2. 检查项目里有没有重名的模块冲突

有时候咱们自己的项目里如果有叫sessions的文件夹、文件或者应用,会和Django自带的sessions模块重名,导致Python导入的时候找错了地方。

  • 翻一下你的项目目录,看看有没有命名为sessions的内容
  • 如果有的话,赶紧给它改个名字,比如my_sessions之类的,避免和内置模块冲突

3. 清理Python的缓存文件

Python生成的.pyc缓存文件有时候会抽风,导致导入异常。你可以做这些操作:

  • 删除项目根目录下所有的__pycache__文件夹
  • 去Anaconda的site-packages里找到Django的sessions目录,删掉里面的__pycache__(路径就是你报错里的C:\HOMEWARE\Anaconda3-Windows-x86_64\lib\site-packages\django\contrib\sessions)
  • 然后重启你的Django服务器,再试试登录admin

4. 重新执行数据库迁移

虽然你的INSTALLED_APPS里已经加了django.contrib.sessions,但说不定Session相关的数据库表没正确创建。试试执行这两个命令:

python manage.py migrate sessions
python manage.py migrate

5. 检查有没有改过Django的源码

如果你之前手贱修改过Django内置的sessions模块文件(比如db.py或者models.py),可能不小心把Session类给删了或者重命名了。这种情况的话,重新安装Django恢复原始文件是最靠谱的办法。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:21:19