Heroku 在错误的目录中寻找 Procfile

Posted

技术标签:

【中文标题】Heroku 在错误的目录中寻找 Procfile【英文标题】:Heroku looking for Procfile in wrong directory 【发布时间】:2018-01-09 09:37:51 【问题描述】:

我正在尝试在 Heroku 上使用 Django,我正在使用它的 Django 模板 https://devcenter.heroku.com/articles/django-app-configuration 来学习本教程 https://devcenter.heroku.com/articles/deploying-python

但是当我运行“heroku local web”时,它总是在错误的目录中查找。我试图移动项目

(env) D:\Study\Workbench\heroku-testing\testing\env\codeShareApp>heroku local web
[WARN] No ENV file found
[WARN] ENOENT: no such file or directory, open 'C:\Users\William\Procfile' 
[FAIL] No Procfile and no package.json file found in Current Directory - See 
run_foreman.js --help

项目目录如下

env/
    codeShareApp/
        .idea/
        codeShareApp/
        .env
        manage.py
        Procfile
        requirements.txt
        runtime
    include/
    Lib/
    Scripts/
    tcl/

编辑: 我尝试使用如下目录创建一个新项目,但仍然出现相同的错误

codeShareApp/
    codeShareApp/
    env/
    .env
    manage.py
    Procfile
    requirements.txt
    runtime

【问题讨论】:

在 settings.py 文件中向我们展示您的static_ROOT/URL。您可能必须将其更改为 static。 Heroku 正在寻找仅存在于您本地计算机上的路径。 显示.env的内容。里面可能有什么东西告诉它看错了地方。 @hansTheFranz 我的项目看起来与模板中显示的完全一样,默认情况下它的设置也是如此 @DanielRoseman 我的 .env 中只有这一行:WEB_CONCURRENCY=2 【参考方案1】:

我在一个项目中也遇到过这个问题;我通过确保 Procfile 使用正确的语法解决了这个问题,并且文件中没有额外的制表符或换行符。 尤其是白色。

【讨论】:

【参考方案2】:

我不知道为什么,但我在另一台机器上尝试过,它工作得很好。它似乎与heroku cli 6.13有关,因为该错误仅在从5.12版本更新到6.12之后才会出现

【讨论】:

【参考方案3】:

文档说:

该文件必须放在应用程序的根目录中。如果放在子目录中,它将不起作用。

尝试这样做,它应该可以工作。请参阅docs 了解更多信息。

【讨论】:

以上是关于Heroku 在错误的目录中寻找 Procfile的主要内容,如果未能解决你的问题,请参考以下文章

Heroku 显示“Procfile 声明类型 ->(无)”,但我正在声明一个 Web 进程

即使在 Procfile 中添加了 Heroku 工人 dyno 也没有出现

应用程序错误:Heroku,Ruby on Rails 4,警告:rails_12factor,vendor / bundle,no Procfile

部署到 Heroku 时,如何在 Procfile 中导入带有 Gunicorn 的自定义模块?

Procfile 在 Heroku 中声明类型 -> (none)

通过 Gunicorn 在 Heroku 上的 Django-twoscoops-project(骨架)。如何设置Procfile?