当前位置: 首页 > 知识库问答 >
问题:

如何修改Procfile以在Heroku上的非标准文件夹中运行Gunicorn进程?

东郭淇
2023-03-14

我对heroku和gunicorn不熟悉,所以我不知道这是如何工作的。但是我已经做了一些搜索,我想我已经接近部署我的Django应用程序(1.5.1)。所以我知道我需要一个有

web: gunicorn app.wsgi

因为我的目录有点不同。我无法在根目录中运行gunicorn

app_project
    requirements/
    contributors/
    app/
        app/
            settings/
            wsgi.py
        # Normally Procfile goes here
    Procfile

通常app/是根目录,但我决定用这种方式来组织我的文件夹,以便将我的django应用程序与其他一些东西分开。因为我必须将Procfile放在根目录中,heroku才能识别它,所以我应该在Procfile中放置什么和/或在gunicorn命令中放置什么参数?

注:

web: gunicorn app.wsgi # won't work because Procfile is in a directory above
                       # I also want to keep the directories as is
                       # I also don't want to create a secondary git inside the app folder just for heroku
web: gunicorn app.app.wsgi # won't work because I don't want to convert the folder into a python module

共有3个答案

慕容烨
2023-03-14

我做了一个丑陋的黑客让这个工作。所以我将发布我的答案,但我希望你们能想出一个更好的解决方案

程序文件

web: sh ./app/run.sh

app_project/app/run.sh

#!/bin/bash

cd app
gunicorn app.wsgi
邓才
2023-03-14

正如@Graham Dumpleton在他的回答中所说,OP的问题可以通过将其Procfile修改为以下内容来解决:

web:gunicorn——pythonpath应用程序。wsgi

为什么这工作:

  • 记住,Heroku只是使用Procfile来启动进程。在这种情况下,gunicorn处理
  • Gunicorn的--pythonpath参数允许您将目录动态附加到Python运行时在do模块查找时搜索的目录列表中
  • 通过向gunicorn命令添加--pythonpath app,解释器基本上被告知“在app目录中查找一个名为app的包(也称为app),其中包含一个名为wsgi的模块`

OP问题中文件夹的通用名称可能会掩盖命令的语法,如下所示:gunicorn--pythonpath

更多信息:
GUnicorn文档

司空玮
2023-03-14

尝试:

web: gunicorn --pythonpath app app.wsgi
 类似资料:
  • 问题内容: 如何修改Procfile在Heroku的非标准文件夹中运行Gunicorn进程?我是Heroku和Gunicorn的新手,所以我不确定这是如何工作的。但是我已经进行了一些搜索,我认为我即将部署Django应用(1.5.1)。所以我知道我需要一个Procfile 因为我的目录有些不同。我无法在根目录中运行gunicorn 通常,app /将是根目录,但是我决定以这种方式来构造文件夹,以将

  • 我正在尝试将Heroku与Java结合使用,我有这个目录结构,我正在使用IntelliJ: 在程序文件中: 当我尝试heroku本地网站时,我得到“” 然而,它确实存在。我在用Windows。

  • 问题内容: 我想我的调用或当我指定一个文件被修改浏览器。修改文件后,我该如何“观看”该文件以执行某些操作? 以编程方式看来,这些步骤是..基本上每秒设置一个永无休止的间隔,并缓存初始修改日期,然后每当更改一次调用X时便比较该日期。 问题答案: 如前所述,您可以使用pyinotify: 例如: 这比轮询更有效。内核会告诉您何时进行操作,而无需您不断询问。

  • 问题内容: 我正在按照这里的指示 http://blog.heroku.com/archives/2011/8/29/play/ 但是我这样做,但是找不到procfile。 如何显式创建procfile? 说明似乎表明我应在应用运行时推送至。我读错了吗? 我在哪里可以指定并为mydomain.herokuapp.com? 仅修改application.conf中的值更好吗? 问题答案: 您需要在项

  • 问题内容: 因此,如何在Java(Windows系统)中更改文件夹的图标,是否有类或某些原因导致我搜索了却找不到任何东西? 问题答案: 根据注释,您正在谈论的文件夹图标是在文件夹本身的隐藏“ ini”文件中指定的。 您 可以 通过将其读取为文本等方式 来 创建/修改文件,但是使用现有的第三方Java库更简单。我已经成功使用了开源ini4j Java库。

  • 2020-06-26T09:26:58.880610+00:00Heroku[web.1]:状态从开始更改为>崩溃2020-06-26T12:16:58.291701+00:00Heroku[web.1]:状态从崩溃更改为>开始2020-06-26T12:17:05.611518+00:00Heroku[web.1]:用命令启动进程>2020-06-26T12:17:08.625648+00:00