首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python应用程序不能部署到Heroku

Python应用程序不能部署到Heroku
EN

Stack Overflow用户
提问于 2020-03-29 05:15:15
回答 3查看 1.7K关注 0票数 1

我在将它部署到heroku时发现了这个错误。

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

项目的procfile

代码语言:javascript
复制
web: python app.py

项目的runtime.txt

代码语言:javascript
复制
python-3.7.6

项目的requirements.txt

代码语言:javascript
复制
    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

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

EN

回答 3

Stack Overflow用户

发布于 2020-03-29 16:00:27

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

尝试在过程文件中用web替换worker

如果进程文件中有" web“进程类型,则运行该进程的dyno必须在60秒内绑定到其指定的$PORT (默认情况下),以便能够响应通过http/s传入的web请求。如果没有,Heroku将按照解释的这里将dyno取下。

票数 0
EN

Stack Overflow用户

发布于 2020-04-06 20:07:21

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

例如,在您的示例中,如果您的文件名与app.py不同,则为不同。

票数 0
EN

Stack Overflow用户

发布于 2020-04-13 17:43:43

尝尝这个,

在cmd提示符上:

代码语言:javascript
复制
pip install gunicorn
pip install whitenoise
pip freeze>requirements.txt

在您的项目主文件夹中添加一个名为Procfile (没有扩展)的文件,并在此文件中键入:

代码语言:javascript
复制
web: gunicorn your_project_(main_folder)_name.wsgi

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

在项目主文件夹中添加名为staticfiles的文件夹,在该文件夹中添加名为__init__.py的文件并将其保留为空白。

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

代码语言:javascript
复制
STATICSTORAGE = "Whitenoise.storage.CompressedManifestStaticFilesStorage"

同样,在settings.py中,在MIDDLEWARE中,添加:

代码语言:javascript
复制
'whitenoise.middleware.WhiteNoiseMiddleware',

最后,在cmd提示符上:

代码语言:javascript
复制
git add .
git commit -m "whatever you want"
git push heroku master

如果我是对的,当你第一次将你的代码推送给Heroku时,它会再次告诉你。

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

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

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

如果没有,请尝试运行

代码语言:javascript
复制
heroku run python manage.py collectstatic 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60910434

复制
相关文章

相似问题

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