【问题标题】:"Application error has occurred" when attempting to run a python app using the Twilio API in Heroku尝试在 Heroku 中使用 Twilio API 运行 python 应用程序时出现“应用程序错误”
【发布时间】:2013-04-30 19:38:26
【问题描述】:

Twilio 新手问题:

按照General Assembly 的教程,我创建了一个使用 Twilio API 的应用程序

我添加的文件是

  • app.py
  • 过程文件
  • requirements.txt

app.py

from flask import Flask
from flask import request
from twilio import twiml
import os

app = Flask(__name__)

@app.route('/caller', methods=['POST'])
def caller():
    response = twiml.Response()
    response.enqueue("Christmas Queue")
    return str(response)


if __name__ == "__main__":
    port = int(os.environ.get('PORT', 5000))
    app.debug = True
    app.run=(host='0.0.0.0'. port=port)


过程文件

web: python app.py


requirements.txt

flask>=0.9
twilio>=3.1

我将应用程序部署到 Heroku。然后我将 URL 添加到 Twilio

我打电话来测试它,但出错了。不知道我下一步可以采取什么措施来进一步解决这个问题。

【问题讨论】:

  • 你的 Python 脚本有很多语法错误。这是您的实际代码吗?
  • @Blender 我犯了很多错误,因为我在较低分辨率的屏幕上观看视频,而且我以前没有使用 Python 的经验(所以我不知道语法错误)。我上面的内容现在反映了 Twilio 的人在课堂上所教的内容。但我感谢任何脚本更正/建议。

标签: python heroku twilio twilio-twiml


【解决方案1】:

您的第一个任务应该是运行 heroku logs -t 并在部署应用程序时实际查看 Heroku 输出。

【讨论】:

  • 或者在部署之前在本地测试 Python 脚本。
  • 好的,我运行了 heroku logs -t 并得到了这个 "2013-05-07T00:10:03.764819+00:00 heroku[router]: at=error code=H14 desc="No web processes running " method=POST path=/caller host=desolate-crag-7877.herokuapp.com fwd="107.22.34.255" dyno= connect= service= status=503 bytes="
  • 好的,我在查看日志时将其范围缩小到 Heroku。在 Heroku devcenter.heroku.com/articles/… 上找到了这个,尝试了命令“heroku ps:scale web=1”,但返回“缩放 web dynos...失败!没有 web 这样的类型。”
  • 您应该运行 2 个 shell:在一个 shell 中运行 heroku logs -t,然后在另一个 shell 中运行 modify/git push。这将让您准确了解 Heroku 遇到的问题。正如@Blender 所说:在部署应用程序之前,您应该确保应用程序在您的外壳中完美运行。 Heroku 还有与 Heroku Toolbelt 一起安装的 Foreman 工具,它可以让您测试 Procfile 和应用程序是否正常工作:我会在本地使用它们,看看会发生什么。
【解决方案2】:

您有一些语法错误:

app.run=(host='0.0.0.0'. port=port)
       ^               ^

删除等号,用逗号替换句点,您的脚本将运行。

我也会通读Heroku's Python tutorial

【讨论】:

  • 试过了,还是报错。这是要点gist.github.com/JGallardo/5529354
  • 当我打电话给录音时,在日志中说“发生应用程序错误”我得到了这个“2013-05-07T00:17:45.570589+00:00 heroku[router]: at= error code=H14 desc="No web processes running" method=POST path=/caller host=desolate-crag-7877.herokuapp.com fwd="50.16.88.219" dyno= connect= service= status=503 bytes="
  • @JGallardo:这是 Heroku 的错误信息。什么是 Python 回溯?
  • 不知道如何回答这个问题,但我在stackoverflow.com/questions/1508467/… 找到了回溯提示并得到“-bash: $log: ambiguous redirect”
  • @JGallardo:你能滚动浏览错误日志吗?那里应该有一个 Python 回溯。另外,你能确定你的procfile 是正确的吗?我认为web之后应该有一个冒号。
猜你喜欢
  • 2012-12-17
  • 2016-12-11
  • 2017-05-05
  • 2018-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-16
相关资源
最近更新 更多