Heroku的女服务员发出错误

Kin*_*ack 8 django heroku procfile waitress

我正试图从Gunicorn切换到Heroku上的女服务员.在日志中,我不断收到Waitress的错误:

Error: Bad module 'cardisle'
Run Code Online (Sandbox Code Playgroud)

在我的procfile中,我有:

web: waitress-serve --port=$PORT cardisle.wsgi:application
Run Code Online (Sandbox Code Playgroud)

如果我删除.wsgi扩展名,我会收到一个不同的错误:

Error: Bad object name 'application'
Run Code Online (Sandbox Code Playgroud)

我已经尝试过changint对象名称,wsgifunc因为它在Waitress文档中,但没有运气.

任何帮助,将不胜感激.我有一个wsgi.py文件,其中包含以下内容:

import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "cardisle.settings")
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
Run Code Online (Sandbox Code Playgroud)

bwa*_*en2 9

这是一个关于女服务员的可怕事实:它隐藏了你的信息.

如果查看源代码,"错误模块"是"从wsgi模块导入应用程序失败"的代码.

要查看错误,请尝试:

  1. 用.登录到dyno heroku run bash
  2. 导航到其中带有wsgi.py的目录(带cd)
  3. 打开一个壳 python
  4. 赛跑 import wsgi

当我遇到这个错误并做到这一点时,我得到了:

~/proj/proj $ python

Python 2.7.9 (default, Dec 11 2014, 17:18:51) 
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import wsgi

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "wsgi.py", line 36, in <module>
    application = get_wsgi_application()
  File "/app/.heroku/python/lib/python2.7/site-packages/django/core/wsgi.py", line 14, in get_wsgi_application
    django.setup()
  File "/app/.heroku/python/lib/python2.7/site-packages/django/__init__.py", line 18, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/app/.heroku/python/lib/python2.7/site-packages/django/apps/registry.py", line 85, in populate
    app_config = AppConfig.create(entry)
  File "/app/.heroku/python/lib/python2.7/site-packages/django/apps/config.py", line 86, in create
    module = import_module(entry)
  File "/app/.heroku/python/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)

ImportError: No module named debug_toolbar
Run Code Online (Sandbox Code Playgroud)

这是一个更有帮助的错误.在我的情况下,我在生产中将DJANGO_SETTINGS_MODULE设置为'local'(没有相应的要求),因此导入失败.

你的问题的确切性质会有所不同,但我会提到一个在我开始时让我感到沮丧的案例:

如果您正在运行web: waitress-serve --port=$PORT cardisle.wsgi:application,则可能需要更改PYTHONPATH环境变量,以便PYTHONPATH + cardisle.wsgi是相关计算机上完全形成的现存路径.

今天晚上我会为女服务员打开一个PR,试图冒出导入错误.祝你好运!

  • 我向服务员提出拉取请求,将异常信息添加到错误输出中,维护人员喜欢它.我们每个人都做到了! (7认同)