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

simple_settings.LazySettings导入报错:无法从django.core.cache导入get_cache

问题分析与解决方案

问题重现

导入操作仅在GitHub Actions工作流中失败,本地环境正常运行,报错信息如下:

from simple_settings import LazySettings
/opt/hostedtoolcache/Python/3.10.11/x64/lib/python3.10/site-packages/simple_settings/__init__.py:1: in <module>
    from .models import Settings
/opt/hostedtoolcache/Python/3.10.11/x64/lib/python3.10/site-packages/simple_settings/models.py:2: in <module>
    from django.core.cache import get_cache
E   ImportError: cannot import name 'get_cache' from 'django.core.cache' (/opt/hostedtoolcache/Python/3.10.11/x64/lib/python3.10/site-packages/django/core/cache/__init__.py)

依赖包清单:

certifi==2022.12.7
chromedriver_autoinstaller==0.4.0
django_simple_settings==0.3.1
jira==3.4.1
openapi_core==0.16.5
pytest==7.2.0
pytest_schema==0.1.1
python_dateutil==2.8.2
PyYAML==6.0
requests==2.28.1
selenium==4.8.2
simple_settings==1.2.0
six==1.16.0
urllib3==1.26.13

环境:Python 3.10,GitHub Actions使用Ubuntu-latest。

问题原因与是否有其他开发者遇到

很多开发者都碰到过这个问题。根源在于你使用的simple_settings==1.2.0版本中,代码硬编码导入了django.core.cache.get_cache,但这个API在Django 1.10版本被标记为弃用,Django 3.0及以上版本直接移除了该接口。

本地环境正常是因为你本地安装的Django版本较低(低于3.0),仍保留这个旧API;而GitHub Actions中安装依赖时,未指定Django版本,pip自动拉取了最新的Django版本,导致API不存在,触发导入错误。

解决办法

  • 指定兼容的Django版本:在依赖清单中添加Django<3.0,强制安装保留get_cache接口的旧版Django,适配simple_settings==1.2.0。
  • 升级simple_settings到最新版本:该问题在simple_settings后续版本中已被修复,新版本替换了get_cache为Django推荐的缓存API,移除了对旧版Django的依赖限制。
  • 移除不必要的依赖:如果你的项目实际不需要simple_settings的Django相关功能,可检查是否能删除django_simple_settings或调整simple_settings的使用方式,避免触发Django相关的导入逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 09:02:19