首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当试图访问我的Heroku应用程序时,“没有运行的web进程”错误(Python/烧瓶)

当试图访问我的Heroku应用程序时,“没有运行的web进程”错误(Python/烧瓶)
EN

Stack Overflow用户
提问于 2020-03-21 20:37:07
回答 2查看 128关注 0票数 1

第一次我创建了一个非常轻巧的python/烧瓶应用程序,它完全写在一个文件中。我试图创建一个轻量级的API,并使它可以从终端(curl等)访问。并在部署并尝试检索数据后获得以下错误:

代码语言:javascript
复制
    desc="No web processes running" .....

应用程序文件夹结构:

FolderName:

app.py Procfile requirements.txt

现在,它们中的每一个都包含:

app.py

代码语言:javascript
复制
    import flask
    import datetime
    import requests
    import json


    app = flask.Flask(__name__)


    @app.route('/covidData', methods=('GET', 'POST'))
    def get_data():

        country_input = flask.request.args.get('country')
        date_input = flask.request.args.get('date')
        date_split = date_input.split("-")
        date = datetime.datetime(int(date_split[2]),  int(date_split[0]), int(date_split[1])).strftime('%m-%d-%Y')

        data = requests.get('https://covid19.mathdro.id/api/daily/' + date)
        processed_data = data.json()

        for country in processed_data:
            if country['countryRegion'] == country_input:
                target_country = country

        requested_data = {"Country": target_country['countryRegion'], "Cases": target_country["confirmed"], "Recovered": target_country["recovered"]}

        return flask.jsonify(requested_data)


    if __name__ == '__main__':
        app.run(port=5000)

Procfile:

代码语言:javascript
复制
    gunicorn wsgi:app

requirements:

代码语言:javascript
复制
    requests==2.22.0
    Flask==1.1.1

我如何部署: 1. git init 2. heroku登录3.创建一个Procfile 4. heroku应用程序:Create5.gitadd。6. git提交-m "heroku部署“7. git推heroku主版

然后,我尝试从本地终端检索数据:

代码语言:javascript
复制
    curl -X POST "https://covid-19-2020-api.herokuapp.com/covidData?country=Israel&date=03-20-2020"

并得到以下错误:

代码语言:javascript
复制
    heroku[router]: at=error code=H14 desc="No web processes running" method=POST path="/covidData?country=Israel&date=03-20-2020" host=covid-19-2020-api.herokuapp.com request_id=8b56257e-4c4f-46df-b8d9-ee487a4a5480 fwd="185.175.33.226" dyno= connect= service= status=503 bytes= protocol=https

什么是可能的问题,任何建议,方向将受到高度赞赏!我是建设API的newby

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-03-22 15:06:58

好吧,我找到解决办法了。这项工作分三个步骤进行:

  1. 在我的航站楼里有一个ran heroku ps:scale web=1 - 开始使用Python的Heroku
  2. 因为我没有单独的wsgi文件,所以在我的procfile中,而不是wsgi,我将文件gunicorn app:app的名称放在
  3. gunicorn添加到我的需求文件中

现在curl命令可以从任何终端运行。

票数 1
EN

Stack Overflow用户

发布于 2020-03-22 09:11:25

Procfile应该如下所示:

代码语言:javascript
复制
web: <command>
web: gunicorn wsgi:app

参考实例

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60793000

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档