如何解决ModuleNotFoundError:没有名为“ my_app”的模块,该应用已在INSTALLED_APPS中
我正在尝试通过Heroku部署Django应用,但是在使用gunicorn wsgi路径运行生产环境后,我得到了ModuleNotFound error
。我的应用程序包含在settings.py中,并且在开发环境中运行良好。但是现在我在部署时遇到了错误。
我的项目结构存在问题,因此Procfile
不会与manage.py放在同一目录中,我相信这可能是问题所在。任何提示或帮助都令人感激。
目录结构
>FINALPROJECT(root)
> .vscode
> project5
> brainSkills
> migrations
> static
> templates
apps.py
models.py
urls.py
views.py
> project5
_init_.py
settings.py
wsgi.py
_init_.py
manage.py
> venv
.env
.gitignore
Procfile
README.md
requirements.txt
Procfile
web: gunicorn project5.project5.wsgi
wsgi.py
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE','project5.project5.settings')
application = get_wsgi_application()
setting.py
import os
from pathlib import Path
from dotenv import load_dotenv
INSTALLED_APPS = [
'brainSkills','django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles',]
ROOT_URLCONF = 'project5.urls'
WSGI_APPLICATION = 'project5.wsgi.application'
gunicorn project5.project5.wsgi
或Heroku local
之后的错误
5:32:28 PM web.1 | File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/importlib/__init__.py",line 127,in import_module
5:32:28 PM web.1 | return _bootstrap._gcd_import(name[level:],package,level)
5:32:28 PM web.1 | File "<frozen importlib._bootstrap>",line 1014,in _gcd_import
5:32:28 PM web.1 | File "<frozen importlib._bootstrap>",line 991,in _find_and_load
5:32:28 PM web.1 | File "<frozen importlib._bootstrap>",line 973,in _find_and_load_unlocked
5:32:28 PM web.1 | ModuleNotFoundError: No module named 'brainSkills'
5:32:28 PM web.1 | [2020-10-12 21:32:28 +0000] [57691] [INFO] Worker exiting (pid: 57691)
5:32:28 PM web.1 | [2020-10-12 17:32:28 -0400] [57689] [INFO] Shutting down: Master
5:32:28 PM web.1 | [2020-10-12 17:32:28 -0400] [57689] [INFO] Reason: Worker failed to boot.
[DONE] Killing all processes with signal SIGINT
5:32:28 PM web.1 Exited with exit code null
解决方法
尝试更改将其添加到INSTALLED_APPS
的方式:
INSTALLED_APPS = [
'django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','brainSkills.apps.BrainSkillsConfig',]
有关此here的更多信息。在研究此问题时,我了解到在Django 1.7之前,如果您在应用程序的default_app_config = 'brainSkills.apps.BrainSkillsConfig'
中也使用了__init__.py
,那么您的方法是正确的。但是Django现在推荐我上面显示的方法。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。