Skip to main content
 首页 » 编程设计

python之在 heroku/module 上部署 django 应用程序时出现问题,找不到错误

2024年12月31日32mq0036

我知道有很多关于这个问题的主题,但我发现这些主题没有帮助。

我试图在 Heroku 上推送我的 Django 应用程序,但在传输过程中,我收到:ModuleNotFoundError : No module named 'dashboard_app.settings'

当构建尝试运行时会发生:python manage.py collecstatic

我重命名了应用程序目录,但更改了设置中的所有内容。在本地一切都很好,甚至是 collectstatic 命令(您可以在下图中看到静态文件)。我整个下午都在尝试解决这个问题,但没有成功......

更多信息:

管理.py

    #!/usr/bin/env python 
    import os 
    import sys 
 
    if __name__ == "__main__": 
     os.environ.setdefault("DJANGO_SETTINGS_MODULE", "dashboard_app.settings") 
    try: 
        from django.core.management import execute_from_command_line 
    except ImportError as exc: 
        raise ImportError( 
            "Couldn't import Django. Are you sure it's installed and " 
            "available on your PYTHONPATH environment variable? Did you " 
            "forget to activate a virtual environment?" 
        ) from exc 
    execute_from_command_line(sys.argv) 

设置.py

    # Static files 
 
    if os.environ.get('PRODUCTION') == 'True': 
 
    PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__)) 
 
    STATIC_ROOT = os.path.join(PROJECT_ROOT, 'staticfiles') 
 
    # Extra places for collectstatic to find static files. 
    STATIC_DIRS = ( 
        os.path.join(PROJECT_ROOT, 'static') 
    ) 
 
    MIDDLEWARE = [ 
    'django.middleware.security.SecurityMiddleware', 
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.middleware.common.CommonMiddleware', 
    'django.middleware.csrf.CsrfViewMiddleware', 
    'django.contrib.auth.middleware.AuthenticationMiddleware', 
    'django.contrib.messages.middleware.MessageMiddleware', 
    'django.middleware.clickjacking.XFrameOptionsMiddleware', 
    'whitenoise.middleware.WhiteNoiseMiddleware', 
    ] 
 
    if os.environ.get('PRODUCTION') == 'True': 
 
    # Simplified static file serving 
    STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage' 
 
    ROOT_URLCONF = 'dashboard_app.urls' 

wsgi.py

 
    import os 
 
    from django.core.wsgi import get_wsgi_application 
 
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "dashboard_app.settings") 
 
    application = get_wsgi_application() 

如果有人能帮我解决这个问题,我将不胜感激!

请您参考如下方法:

在 heroku 上删除并创建另一个应用程序之后。我在推送之前在本地生成了静态文件,现在它工作得很好......:)