我打算使用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]原因:工作者无法启动。
答案 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”没有扩展名,它应该在根目录中您的项目