Python应用程序无法部署到Heroku

时间:2020-03-29 05:15:15

标签: python heroku

在将其部署到heroku时发现此错误。 cp:无法创建常规文件'/app/tmp/cache/.heroku/requirements.txt':没有此类文件或目录

项目的procfile: 网址:python app.py

项目的runtime.txt python-3.7.6

项目的要求。txt


    APScheduler==3.6.3
    certifi==2019.11.28
    Click==7.0
    colorhash==1.0.2
    configparser==4.0.2
    cycler==0.10.0
    Flask==1.1.1
    Flask-Cors==3.0.8
    gunicorn==20.0.4
    itsdangerous==1.1.0
    Jinja2==2.11.0
    kiwisolver==1.1.0
    kneed==0.5.3
    MarkupSafe==1.1.1
    numpy==1.18.1
    psutil==5.7.0
    pyparsing==2.4.6
    python-dateutil==2.8.1
    six==1.14.0
    SQLAlchemy==1.3.13
    tzlocal==2.0.0
    Werkzeug==0.16.1
    wincertstore==0.2
    chardet==3.0.4
    decorator==4.4.1
    entrypoints==0.3
    idna==2.8
    jsonschema==3.2.0
    matplotlib==3.1.3
    mccabe==0.6.1
    pandas==1.0.1
    pytz==2019.3
    pyzmq==18.1.1
    requests==2.22.0
    soupsieve==1.9.5
    urllib3==1.25.8
    webencodings==0.5.1
    widgetsnbextension==3.5.1

有人经历过吗?如果是的话,请指导我。

3 个答案:

答案 0 :(得分:0)

如果您显示要运行的脚本,那就太好了。否则,我假设该错误可能与procfile中的错误配置有关。

尝试在Procfile中将web替换为worker

如果您的Procfile中具有“ Web”进程类型,则运行该进程的dyno必须在60秒内绑定到其分配的$ PORT(默认情况下),以便能够通过http /响应传入的Web请求s。如果不是,Heroku会按照here的说明降低测功力。

答案 1 :(得分:0)

我不知道这是否是您的情况,如果您在Procfile中指定要启动的文件时出错,则会发生此错误。

例如,如果您的文件名不同于app.py,则为其他文件。

答案 2 :(得分:0)

尝试一下,

在您的cmd提示符下:

http://www.innovaprint.com.sg/contact.html
https://www.plexure.com.sg/contact
http://www.mount-zion.biz/contactus.html
https://stackoverflow.com/company/contact
https://www.yellowpages.com/about/contact-us

在项目主文件夹中,添加一个名为pip install gunicorn pip install whitenoise pip freeze>requirements.txt (无扩展名)的文件,并在此文件类型内:

Procfile

注意:在您的procfile中,您键入了app.py,但应该是my_project.wsgi。也许这足以解决您的问题。

在项目主文件夹中,添加一个名为web: gunicorn your_project_(main_folder)_name.wsgi 的文件夹,然后在该文件夹中添加一个名为staticfiles的文件,并将其留空。

然后在您的settings.py中添加:

__init__.py

再次在STATICSTORAGE = "Whitenoise.storage.CompressedManifestStaticFilesStorage" 内的settings.py中添加:

MIDDLEWARE

最后在您的cmd提示符下:

'whitenoise.middleware.WhiteNoiseMiddleware',

如果我是正确的话,那么您第一次将代码推送到Heroku时,它将再次告诉您

无法创建常规文件'/app/tmp/cache/.heroku/requirements.txt': 没有这样的文件或目录

但是它将收集所有静态文件,然后成功进行部署。

从下一次开始,它将不再打印所有收集的静态文件。

如果没有,请尝试运行

git add .
git commit -m "whatever you want"
git push heroku master