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

迁移Django部署遇sharedpy依赖问题:缺失django.contrib.staticfiles.templatetags

问题解答

关于sharedpy-0.0.106的依赖确认

是的,sharedpy-0.0.106确实依赖django.contrib.staticfiles.templatetags——从你排查到的报错来源(sharedpy/django/utils.py文件)可以确定,这个旧版本的sharedpy仍在使用Django 2.x及更早版本的静态文件模板标签路径,而Django 3+已经将该模块合并到django.templatetags.static中,因此出现了ModuleNotFoundError。

解决办法

1. 优先尝试升级sharedpy

执行以下命令更新sharedpy到最新版本,新版本通常会适配Django 3+的API变更,无需修改代码即可解决依赖问题:

pip install --upgrade sharedpy

2. 手动修改sharedpy源码(无更新版本时)

如果sharedpy没有可用的更新版本,可直接修改其源码适配Django 4.2:

  • 找到sharedpy的安装目录(可通过pip show sharedpy查看Location字段)
  • 打开sharedpy/django/utils.py文件
  • 将所有引用django.contrib.staticfiles.templatetags的代码替换为django.templatetags.static,例如:
    将from django.contrib.staticfiles.templatetags.staticfiles import static改为from django.templatetags.static import static
  • 保存文件后,重新运行manage.py makemigrations测试

3. 逐步替换功能,摆脱对sharedpy的依赖

如果上述方法都无法解决,可逐步替换sharedpy的功能:

  • 先梳理项目中所有使用sharedpy的位置,查找代码中的import sharedpy或from sharedpy import ...语句
  • 针对每个用到的功能,用Django原生功能或成熟第三方库替代:
    • 静态文件相关功能:直接用Django自带的django.templatetags.static和django.contrib.staticfiles模块替代
    • 其他通用工具功能:用Python标准库(如os、json)或知名第三方库(如requests、pandas)替换
  • 每替换一处功能就进行测试,确保业务逻辑正常,全部替换完成后执行pip uninstall sharedpy移除该依赖

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 12:12:08