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

PythonAnywhere部署Django时local_settings.py模块找不到错误解决

PythonAnywhere部署Django时local_settings.py模块找不到的问题

问题原因

是的,这个错误就是因为服务器上的stackoverflow_clone目录下不存在local_settings.py文件导致的。你本地把该文件加入了.gitignore,Git不会将其推送到服务器,所以执行命令时Python找不到这个模块。

解决方案

方案1:手动在服务器创建local_settings.py

这是最直接的方法,和本地保持一致的配置结构:

  • 登录PythonAnywhere控制台,进入项目的配置目录:
    cd /home/ittybitty/django_stackoverflow/stackoverflow_clone
    
  • 用编辑器创建local_settings.py文件(以nano为例):
    nano local_settings.py
    
  • 将你本地local_settings.py中的敏感配置(比如SECRET_KEY、数据库参数等)复制粘贴进去,按Ctrl+O保存,Ctrl+X退出编辑器。
  • 再次执行collectstatic命令即可正常运行:
    python manage.py collectstatic
    

方案2:改用环境变量(更规范的生产环境做法)

避免手动维护服务器上的配置文件,用环境变量存储敏感信息更安全:

  • 设置环境变量:
    可以通过两种方式设置:
    1. 控制台临时设置(重启后失效):
      export SECRET_KEY="你的SECRET_KEY内容"
      
    2. 永久设置(推荐):在PythonAnywhere的「Web」页面,找到「Virtualenv」下方的「Environment variables」,添加键值对(比如SECRET_KEY=你的密钥内容)。
  • 修改settings.py:
    替换原来的from .local_settings import *,改为读取环境变量的代码:
    import os
    # 读取SECRET_KEY,本地测试可填默认值
    SECRET_KEY = os.environ.get('SECRET_KEY', '本地测试用的临时密钥')
    # 其他敏感配置同理,比如数据库密码
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': '你的数据库名',
            'USER': '你的数据库用户',
            'PASSWORD': os.environ.get('DB_PASSWORD'),
            'HOST': 'localhost',
        }
    }
    
  • 重启PythonAnywhere的Web服务,执行collectstatic命令即可。

方案3:修改.gitignore推送配置文件(不推荐)

如果一定要用local_settings.py并通过Git推送,可以修改.gitignore添加例外,但这会将敏感信息暴露在代码仓库中,存在严重安全风险,强烈不建议使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 13:25:32