ModuleNotFoundError: 没有模块名称“mysite.settings”

时间:2021-06-12 04:24:45

标签: python django postgresql heroku deployment

我一直在尝试在 heroku 上部署我的 django 项目,并且一个星期以来一直在反对这个错误。一切都在本地运行良好,但是当我推送到 heroku 时,我得到的只是 heroku logs --tail

中此信息的应用程序错误
2021-06-12T04:09:09.270161+00:00 heroku[web.1]: State changed from crashed to starting
2021-06-12T04:09:12.000000+00:00 app[api]: Build succeeded
2021-06-12T04:09:17.474951+00:00 heroku[web.1]: Starting process with command `gunicorn mysite.mysite.wsgi`
2021-06-12T04:09:20.249454+00:00 app[web.1]: [2021-06-12 04:09:20 +0000] [4] [INFO] Starting gunicorn 20.1.0
2021-06-12T04:09:20.250347+00:00 app[web.1]: [2021-06-12 04:09:20 +0000] [4] [INFO] Listening at: http://0.0.0.0:48385 (4)
2021-06-12T04:09:20.250492+00:00 app[web.1]: [2021-06-12 04:09:20 +0000] [4] [INFO] Using worker: sync
2021-06-12T04:09:20.255741+00:00 app[web.1]: [2021-06-12 04:09:20 +0000] [8] [INFO] Booting worker with pid: 8
2021-06-12T04:09:20.275136+00:00 app[web.1]: [2021-06-12 04:09:20 +0000] [9] [INFO] Booting worker with pid: 9
2021-06-12T04:09:20.462240+00:00 app[web.1]: [2021-06-12 04:09:20 +0000] [8] [ERROR] Exception in worker process
2021-06-12T04:09:20.462242+00:00 app[web.1]: Traceback (most recent call last):
2021-06-12T04:09:20.462243+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/gunicorn/arbiter.py", line 589, in spawn_worker
2021-06-12T04:09:20.462243+00:00 app[web.1]: worker.init_process()
2021-06-12T04:09:20.462244+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/gunicorn/workers/base.py", line 134, in init_process
2021-06-12T04:09:20.462244+00:00 app[web.1]: self.load_wsgi()
2021-06-12T04:09:20.462245+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/gunicorn/workers/base.py", line 146, in load_wsgi
2021-06-12T04:09:20.462245+00:00 app[web.1]: self.wsgi = self.app.wsgi()
2021-06-12T04:09:20.462245+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/gunicorn/app/base.py", line 67, in wsgi
2021-06-12T04:09:20.462246+00:00 app[web.1]: self.callable = self.load()
2021-06-12T04:09:20.462246+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py", line 58, in load
2021-06-12T04:09:20.462247+00:00 app[web.1]: return self.load_wsgiapp()
2021-06-12T04:09:20.462247+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py", line 48, in load_wsgiapp
2021-06-12T04:09:20.462247+00:00 app[web.1]: return util.import_app(self.app_uri)
2021-06-12T04:09:20.462248+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/gunicorn/util.py", line 359, in import_app
2021-06-12T04:09:20.462248+00:00 app[web.1]: mod = importlib.import_module(module)
2021-06-12T04:09:20.462249+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/importlib/__init__.py", line 127, in import_module
2021-06-12T04:09:20.462249+00:00 app[web.1]: return _bootstrap._gcd_import(name[level:], package, level)
2021-06-12T04:09:20.462250+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
2021-06-12T04:09:20.462250+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 991, in _find_and_load
2021-06-12T04:09:20.462251+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
2021-06-12T04:09:20.462251+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
2021-06-12T04:09:20.462251+00:00 app[web.1]: File "<frozen importlib._bootstrap_external>", line 848, in exec_module
2021-06-12T04:09:20.462252+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
2021-06-12T04:09:20.462252+00:00 app[web.1]: File "/app/mysite/mysite/wsgi.py", line 22, in <module>
2021-06-12T04:09:20.462254+00:00 app[web.1]: application = get_wsgi_application()
2021-06-12T04:09:20.462255+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/django/core/wsgi.py", line 12, in get_wsgi_application
2021-06-12T04:09:20.462255+00:00 app[web.1]: django.setup(set_prefix=False)
2021-06-12T04:09:20.462256+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/django/__init__.py", line 19, in setup
2021-06-12T04:09:20.462256+00:00 app[web.1]: configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
2021-06-12T04:09:20.462257+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/django/conf/__init__.py", line 82, in __getattr__
2021-06-12T04:09:20.462257+00:00 app[web.1]: self._setup(name)
2021-06-12T04:09:20.462257+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/django/conf/__init__.py", line 69, in _setup
2021-06-12T04:09:20.462258+00:00 app[web.1]: self._wrapped = Settings(settings_module)
2021-06-12T04:09:20.462258+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/django/conf/__init__.py", line 170, in __init__
2021-06-12T04:09:20.462258+00:00 app[web.1]: mod = importlib.import_module(self.SETTINGS_MODULE)
2021-06-12T04:09:20.462259+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/importlib/__init__.py", line 127, in import_module
2021-06-12T04:09:20.462259+00:00 app[web.1]: return _bootstrap._gcd_import(name[level:], package, level)
2021-06-12T04:09:20.462260+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
2021-06-12T04:09:20.462260+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 991, in _find_and_load
2021-06-12T04:09:20.462260+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 973, in _find_and_load_unlocked
2021-06-12T04:09:20.462261+00:00 app[web.1]: ModuleNotFoundError: No module named 'mysite.settings'
2021-06-12T04:09:20.462431+00:00 app[web.1]: [2021-06-12 04:09:20 +0000] [8] [INFO] Worker exiting (pid: 8)
2021-06-12T04:09:20.498181+00:00 app[web.1]: [2021-06-12 04:09:20 +0000] [9] [ERROR] Exception in worker process
2021-06-12T04:09:20.498183+00:00 app[web.1]: Traceback (most recent call last):
2021-06-12T04:09:20.498184+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/gunicorn/arbiter.py", line 589, in spawn_worker
2021-06-12T04:09:20.498185+00:00 app[web.1]: worker.init_process()
2021-06-12T04:09:20.498185+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/gunicorn/workers/base.py", line 134, in init_process
2021-06-12T04:09:20.498185+00:00 app[web.1]: self.load_wsgi()
2021-06-12T04:09:20.498186+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/gunicorn/workers/base.py", line 146, in load_wsgi
2021-06-12T04:09:20.498186+00:00 app[web.1]: self.wsgi = self.app.wsgi()
2021-06-12T04:09:20.498187+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/gunicorn/app/base.py", line 67, in wsgi
2021-06-12T04:09:20.498187+00:00 app[web.1]: self.callable = self.load()
2021-06-12T04:09:20.498188+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py", line 58, in load
2021-06-12T04:09:20.498188+00:00 app[web.1]: return self.load_wsgiapp()
2021-06-12T04:09:20.498188+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/gunicorn/app/wsgiapp.py", line 48, in load_wsgiapp
2021-06-12T04:09:20.498189+00:00 app[web.1]: return util.import_app(self.app_uri)
2021-06-12T04:09:20.498189+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/gunicorn/util.py", line 359, in import_app
2021-06-12T04:09:20.498190+00:00 app[web.1]: mod = importlib.import_module(module)
2021-06-12T04:09:20.498190+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/importlib/__init__.py", line 127, in import_module
2021-06-12T04:09:20.498191+00:00 app[web.1]: return _bootstrap._gcd_import(name[level:], package, level)
2021-06-12T04:09:20.498191+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
2021-06-12T04:09:20.498191+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 991, in _find_and_load
2021-06-12T04:09:20.498195+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
2021-06-12T04:09:20.498196+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
2021-06-12T04:09:20.498196+00:00 app[web.1]: File "<frozen importlib._bootstrap_external>", line 848, in exec_module
2021-06-12T04:09:20.498196+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
2021-06-12T04:09:20.498197+00:00 app[web.1]: File "/app/mysite/mysite/wsgi.py", line 22, in <module>
2021-06-12T04:09:20.498197+00:00 app[web.1]: application = get_wsgi_application()
2021-06-12T04:09:20.498198+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/django/core/wsgi.py", line 12, in get_wsgi_application
2021-06-12T04:09:20.498198+00:00 app[web.1]: django.setup(set_prefix=False)
2021-06-12T04:09:20.498198+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/django/__init__.py", line 19, in setup
2021-06-12T04:09:20.498199+00:00 app[web.1]: configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
2021-06-12T04:09:20.498199+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/django/conf/__init__.py", line 82, in __getattr__
2021-06-12T04:09:20.498199+00:00 app[web.1]: self._setup(name)
2021-06-12T04:09:20.498200+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/django/conf/__init__.py", line 69, in _setup
2021-06-12T04:09:20.498200+00:00 app[web.1]: self._wrapped = Settings(settings_module)
2021-06-12T04:09:20.498201+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/site-packages/django/conf/__init__.py", line 170, in __init__
2021-06-12T04:09:20.498201+00:00 app[web.1]: mod = importlib.import_module(self.SETTINGS_MODULE)
2021-06-12T04:09:20.498201+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.8/importlib/__init__.py", line 127, in import_module
2021-06-12T04:09:20.498202+00:00 app[web.1]: return _bootstrap._gcd_import(name[level:], package, level)
2021-06-12T04:09:20.498209+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
2021-06-12T04:09:20.498209+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 991, in _find_and_load
2021-06-12T04:09:20.498209+00:00 app[web.1]: File "<frozen importlib._bootstrap>", line 973, in _find_and_load_unlocked
2021-06-12T04:09:20.498210+00:00 app[web.1]: ModuleNotFoundError: No module named 'mysite.settings'
2021-06-12T04:09:20.498388+00:00 app[web.1]: [2021-06-12 04:09:20 +0000] [9] [INFO] Worker exiting (pid: 9)
2021-06-12T04:09:20.529306+00:00 app[web.1]: [2021-06-12 04:09:20 +0000] [4] [WARNING] Worker with pid 9 was terminated due to signal 15
2021-06-12T04:09:20.627275+00:00 app[web.1]: [2021-06-12 04:09:20 +0000] [4] [INFO] Shutting down: Master
2021-06-12T04:09:20.627397+00:00 app[web.1]: [2021-06-12 04:09:20 +0000] [4] [INFO] Reason: Worker failed to boot.
2021-06-12T04:09:20.697433+00:00 heroku[web.1]: Process exited with status 3
2021-06-12T04:09:20.764978+00:00 heroku[web.1]: State changed from starting to crashed

我的Procfile:

不正确 web: gunicorn mysite.mysite.wsgi

解决方案

    web: gunicorn --chdir mysite mysite.wsgi
    release: cd mysite && python manage.py migrate

ch-dir mysite 是关键区别,根据我的理解,迫使 gunicorn 专门针对 mysite/mysite 定位 wsgi.py

我的wsgi.py

import sys

from django.core.wsgi import get_wsgi_application

path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
if path not in sys.path:
    sys.path.append(path)

os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")

application = get_wsgi_application()

和我的目录: picture of my directory, Procfile on same level as manage.py

非常感谢任何帮助或指导

2 个答案:

答案 0 :(得分:0)

在 Procfile 中,您只需要指定 wsgi 路径。 您的 Procfile 文件应如下所示:

web: gunicorn mysite.wsgi --log-file - 

答案 1 :(得分:0)

将我的 Procfile 更改为

    web: gunicorn --chdir mysite mysite.wsgi
    release: cd mysite && python manage.py migrate

通过将当前工作目录更改为父目录 ModuleNotFound: no module named 'mysite.settings' 来解决 mysite。感谢两位的帮助,虽然没有直接解决问题,但为我指明了正确的方向。