ModuleNotFoundError:没有名为“ wsgi”的模块

时间:2019-09-13 06:22:21

标签: django heroku procfile

我打算使用Heroku托管它。 但这由于配置文件问题而无效。

这是我的Procfile

-> web: gunicorn wsgi:app

我尝试了这些东西。

->web : gunicorn wsgi.py
->web : gunicorn <myproject>.wsgi --log-file-

我的wsgi.py代码

"""
WSGI config for config project.

It exposes the WSGI callable as a module-level variable named ``application``.

For more information on this file, see
https://docs.djangoproject.com/en/2.2/howto/deployment/wsgi/
"""

import os

from django.core.wsgi import get_wsgi_application

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings')

application = get_wsgi_application()


from whitenoise.django import DjangoWhiteNoise
application = DjangoWhiteNoise(application)

这是我的heroku日志

  

使用命令gunicorn wsgi:app启动过程   2019-09-13T06:06:27.409894 + 00:00 heroku [web.1]:状态从   开始崩溃2019-09-13T06:06:27.388714 + 00:00 heroku [web.1]:   进程退出,状态为3 2019-09-13T06:06:27.176179 + 00:00   app [web.1]:[2019-09-13 06:06:27 +0000] [4] [INFO]开始使用gunicorn   19.9.0 2019-09-13T06:06:27.177866 + 00:00 app [web.1]:[2019-09-13 06:06:27 +0000] [4] [INFO]收听:{{3} }(4)   2019-09-13T06:06:27.177959 + 00:00 app [web.1]:[2019-09-13 06:06:27   +0000] [4] [INFO]使用worker:同步2019-09-13T06:06:27.181907 + 00:00 app [web.1]:[2019-09-13 06:06:27 +0000] [10] [INFO]引导工人   与pid:10 2019-09-13T06:06:27.187052 + 00:00 app [web.1]:[2019-09-13   06:06:27 +0000] [11] [INFO]使用pid启动工人:11   2019-09-13T06:06:27.187674 + 00:00 app [web.1]:[2019-09-13 06:06:27   +0000] [10] [错误]工作进程异常2019-09-13T06:06:27.187678 + 00:00应用程序[web.1]:追溯(最新   最后调用):2019-09-13T06:06:27.187680 + 00:00 app [web.1]:文件   “ /app/.heroku/python/lib/python3.7/site-packages/gunicorn/arbiter.py”,   583行,在spawn_worker中2019-09-13T06:06:27.187682 + 00:00 app [web.1]:   worker.init_process()2019-09-13T06:06:27.187684 + 00:00 app [web.1]:   文件   “ /app/.heroku/python/lib/python3.7/site-packages/gunicorn/workers/base.py”,   第129行,在init_process 2019-09-13T06:06:27.187686 + 00:00 app [web.1]中:   self.load_wsgi()2019-09-13T06:06:27.187688 + 00:00 app [web.1]:文件   “ /app/.heroku/python/lib/python3.7/site-packages/gunicorn/workers/base.py”,   第138行,在load_wsgi 2019-09-13T06:06:27.187690 + 00:00 app [web.1]中:   self.wsgi = self.app.wsgi()2019-09-13T06:06:27.187692 + 00:00   app [web.1]:文件   “ /app/.heroku/python/lib/python3.7/site-packages/gunicorn/app/base.py”,   第67行,在wsgi中2019-09-13T06:06:27.187694 + 00:00 app [web.1]:   self.callable = self.load()2019-09-13T06:06:27.187696 + 00:00   app [web.1]:文件   “ /app/.heroku/python/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py”,   第52行,正在加载2019-09-13T06:06:27.187698 + 00:00 app [web.1]:返回   self.load_wsgiapp()2019-09-13T06:06:27.187700 + 00:00 app [web.1]:文件   “ /app/.heroku/python/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py”,   第41行,在load_wsgiapp 2019-09-13T06:06:27.187702 + 00:00 app [web.1]中:   返回util.import_app(self.app_uri)2019-09-13T06:06:27.187704 + 00:00   app [web.1]:文件   “ /app/.heroku/python/lib/python3.7/site-packages/gunicorn/util.py”,   第350行,在import_app 2019-09-13T06:06:27.187706 + 00:00 app [web.1]中:   导入(模块)2019-09-13T06:06:27.187708 + 00:00 app [web.1]:ModuleNotFoundError:没有名为“ wsgi”的模块   2019-09-13T06:06:27.187851 + 00:00 app [web.1]:[2019-09-13 06:06:27   +0000] [10] [INFO]工人退出(pid:10)2019-09-13T06:06:27.193919 + 00:00 app [web.1]:[2019-09-13 06:06:27   +0000] [11] [错误]工作进程异常2019-09-13T06:06:27.193924 + 00:00应用程序[web.1]:追溯(最新   最后调用):2019-09-13T06:06:27.193926 + 00:00 app [web.1]:文件   “ /app/.heroku/python/lib/python3.7/site-packages/gunicorn/arbiter.py”,   583行,在spawn_worker中2019-09-13T06:06:27.193928 + 00:00 app [web.1]:   worker.init_process()2019-09-13T06:06:27.193930 + 00:00 app [web.1]:   文件   “ /app/.heroku/python/lib/python3.7/site-packages/gunicorn/workers/base.py”,   第129行,在init_process 2019-09-13T06:06:27.193932 + 00:00 app [web.1]中:   self.load_wsgi()2019-09-13T06:06:27.193934 + 00:00 app [web.1]:文件   “ /app/.heroku/python/lib/python3.7/site-packages/gunicorn/workers/base.py”,   第138行,在load_wsgi 2019-09-13T06:06:27.193936 + 00:00 app [web.1]中:   self.wsgi = self.app.wsgi()2019-09-13T06:06:27.193939 + 00:00   app [web.1]:文件   “ /app/.heroku/python/lib/python3.7/site-packages/gunicorn/app/base.py”,   第67行,在wsgi中2019-09-13T06:06:27.193941 + 00:00 app [web.1]:   self.callable = self.load()2019-09-13T06:06:27.193943 + 00:00   app [web.1]:文件   “ /app/.heroku/python/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py”,   第52行,正在加载2019-09-13T06:06:27.193945 + 00:00 app [web.1]:返回   self.load_wsgiapp()2019-09-13T06:06:27.193947 + 00:00 app [web.1]:文件   “ /app/.heroku/python/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py”,   第41行,在load_wsgiapp 2019-09-13T06:06:27.193949 + 00:00 app [web.1]中:   返回util.import_app(self.app_uri)2019-09-13T06:06:27.193951 + 00:00   app [web.1]:文件   “ /app/.heroku/python/lib/python3.7/site-packages/gunicorn/util.py”,   第350行,在import_app 2019-09-13T06:06:27.193953 + 00:00 app [web.1]中:   导入(模块)2019-09-13T06:06:27.193955 + 00:00 app [web.1]:ModuleNotFoundError:没有名为“ wsgi”的模块   2019-09-13T06:06:27.194099 + 00:00 app [web.1]:[2019-09-13 06:06:27   +0000] [11] [INFO]工人退出(pid:11)2019-09-13T06:06:27.321586 + 00:00 app [web.1]:[2019-09-13 06:06:27   +0000] [4] [INFO]正在关机:大师级2019-09-13T06:06:27.321719 + 00:00 app [web.1]:[2019-09-13 06:06:27   +0000] [4] [INFO]原因:工作者无法启动。

3 个答案:

答案 0 :(得分:0)

您必须在根目录中创建procfile.txt,然后在其中提供wsgi文件路径。as-web:gunicorn config.wsgi

答案 1 :(得分:0)

web: gunicorn wsgi:app

这几乎肯定是不正确的。

传递给gunicorn的参数告诉它应用程序的入口点在哪里。 matches your Python module path。通常,这将是项目目录中名为wsgi.py的文件:

myproject/
    wsgi.py

因此your Procfile should contain

web: gunicorn myproject.wsgi

确保完全遵循此格式。 web:之间不应有空格。

答案 2 :(得分:0)

不要把它保存为procfile.txt,这会导致更多的bug,文件应该保存为“Procfile”,没有扩展名,我只重复“Procfile”没有扩展名,它应该在根目录中您的项目