我知道有很多关于这个问题的主题,但我发现这些主题没有帮助。
我试图在 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 上删除并创建另一个应用程序之后。我在推送之前在本地生成了静态文件,现在它工作得很好......:)
