ModuleNotFoundError:没有名为“wsgi”的模块
Posted
技术标签:
【中文标题】ModuleNotFoundError:没有名为“wsgi”的模块【英文标题】:ModuleNotFoundError: No module named 'wsgi' 【发布时间】:2020-01-15 00:20:26 【问题描述】:我打算使用 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] 收听地址:http://0.0.0.0:56276 ( 4) 2019-09-13T06:06:27.177959+00:00 应用 [web.1]: [2019-09-13 06:06:27 +0000] [4] [INFO] 使用工作人员:同步 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 应用 [web.1]: [2019-09-13 06:06:27 +0000] [10] [错误] 工作进程 2019-09-13T06:06:27.187678+00:00 app[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 应用 [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 应用 [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 应用[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 应用[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]: return 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 应用[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] 中: import(module) 2019-09-13T06:06:27.187708+00:00 app[web.1]: ModuleNotFoundError: No module named 'wsgi' 2019-09-13T06:06:27.187851+00:00 应用 [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 app[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 应用 [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 应用 [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 应用[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 应用[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]: return 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 应用[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] 中: import(module) 2019-09-13T06:06:27.193955+00:00 app[web.1]: ModuleNotFoundError: No module named 'wsgi' 2019-09-13T06:06:27.194099+00:00 应用 [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] 关闭:Master 2019-09-13T06:06:27.321719+00:00 app[web.1]: [2019-09-13 06:06:27 +0000] [4] [INFO] 原因:Worker 启动失败。
【问题讨论】:
你真的安装了wsgi
吗?
您的Procfile
并不是每行都包含->
前缀,是吗?请不要给事物添加无用的装饰,尤其是当它们降低清晰度时。
您是否同时尝试了“您尝试过的事情”,在一个Procfile
中使用了两行?
【参考方案1】:
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】:你必须在你的根目录中创建一个 procfile.txt 并在那里提供你的 wsgi 文件路径.as-web: gunicorn config.wsgi
【讨论】:
【参考方案3】:不要将它保存为 procfile.txt,这会导致更多的错误,文件应该保存为“Procfile”,没有扩展名,我重复没有扩展名,只是“Procfile”,它应该在根目录中你的项目
【讨论】:
以上是关于ModuleNotFoundError:没有名为“wsgi”的模块的主要内容,如果未能解决你的问题,请参考以下文章
ModuleNotFoundError:没有名为“dataviz”的模块
ModuleNotFoundError:没有名为“numpy”的模块
错误:ModuleNotFoundError:没有名为“图像”的模块
ModuleNotFoundError:没有名为“knox”的模块