Django部署Heroku执行collectstatic提示No module named 'backend'求助
问题根因
报错的核心原因是项目settings.py中配置的静态文件存储类路径错误,你配置了不存在的backend.custom_azure路径,且错误安装了和项目完全无关的第三方backend包,无法解决实际问题。
解决方案
步骤1:清理无效依赖
- 卸载误装的第三方backend包:执行
pip uninstall backend -y - 打开requirements.txt,删除
backend==0.2.4.1这行无效依赖
步骤2:修正settings.py存储配置
根据你的实际需求二选一即可:
方案A:不需要使用Azure对象存储,优先快速部署
直接修改settings.py中的存储配置为Django默认值:
# 注释或删除你之前写的backend.custom_azure相关存储配置 STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.StaticFilesStorage' DEFAULT_FILE_STORAGE = 'django.core.files.storage.FileSystemStorage' # 补充Heroku要求的STATIC_ROOT配置 STATIC_ROOT = BASE_DIR / 'staticfiles'
方案B:需要使用Azure存储静态/媒体文件
你已经安装了django-storages和azure相关依赖,直接使用内置的Azure存储类即可,不需要自定义类:
# 注释或删除你之前写的backend.custom_azure相关存储配置 DEFAULT_FILE_STORAGE = 'storages.backends.azure_storage.AzureStorage' STATICFILES_STORAGE = 'storages.backends.azure_storage.AzureStorage' # 补充Azure存储必要配置 AZURE_ACCOUNT_NAME = "你的Azure存储账户名" AZURE_ACCOUNT_KEY = "你的Azure存储账户密钥" AZURE_CONTAINER = "你的存储容器名"
步骤3:验证修复
配置修改完成后,重新执行python manage.py collectstatic即可正常运行。
内容的提问来源于stack exchange,提问作者VaultDweller
相关产品推荐
相关产品推荐

