1
votes

L'application Python ne peut pas être déployée sur Heroku

Je trouve cette erreur lors de son déploiement sur heroku. cp: impossible de créer un fichier normal '/app/tmp/cache/.heroku/requirements.txt': aucun fichier ou répertoire de ce type

Le fichier proc du projet: web: python app.py

runtime.txt du projet python-3.7.6

requirements.txt du projet

    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

Quelqu'un a-t-il vécu cela? s'il vous plaît guidez-moi si oui.


4 commentaires

Après quelque peu, il s'est déployé sur heroku, mais lorsque j'ai exécuté l'application, il apparaît dans les journaux Erreur R10 (délai de démarrage) -> Le processus Web n'a pas pu se lier à $ PORT dans les 60 secondes suivant le lancement. Je ne sais pas comment gérer ça, aidez-moi


voyez ma réponse laissez-moi savoir si cela aide.


même erreur de mon côté.j'essaie de le réparer le dernier jour mais je ne peux pas le faire.recherchez sur Internet mais ne résolvez pas cela


J'ai le même problème que dans la question initiale


3 Réponses :


0
votes

Cela aurait été formidable si vous aviez montré le script que vous essayez d'exécuter. Sans cela, je suppose que l'erreur peut être liée à une mauvaise configuration dans procfile.

Essayez de remplacer web par worker dans votre Procfile.

Si vous avez un type de processus "Web" dans votre Procfile, le dyno exécutant ce processus doit se lier à son $ PORT attribué dans les 60 secondes (par défaut), afin de pouvoir répondre aux requêtes Web entrantes via http / s. Si ce n'est pas le cas, Heroku décroche le dynamomètre comme expliqué ici .


0 commentaires

0
votes

Je ne sais pas si c'est votre cas de toute façon cette erreur peut se produire si vous faites une erreur en spécifiant quel fichier démarrer dans Procfile.

Par exemple, dans votre cas, si au lieu de app.py, votre nom de fichier est différent.


0 commentaires

0
votes

Essayez ceci,

sur votre invite cmd:

heroku run python manage.py collectstatic 

Dans le dossier principal de votre projet, ajoutez un fichier nommé Procfile (sans extension) , et à l'intérieur de ce type de fichier:

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

Remarque: Dans votre fichier proc, vous avez tapé app.py, mais cela devrait plutôt être mon_projet.wsgi. Peut-être que cela suffit pour résoudre votre problème.

Dans le dossier principal de votre projet, ajoutez un dossier nommé staticfiles , et à l'intérieur de ce dossier, ajoutez un fichier nommé __init __. Py code> et laissez-le vide.

Ensuite, dans votre settings.py, ajoutez:

'whitenoise.middleware.WhiteNoiseMiddleware',

Encore une fois dans settings.py, à l'intérieur de MIDDLEWARE code>, ajoutez:

STATICSTORAGE = "Whitenoise.storage.CompressedManifestStaticFilesStorage"

Enfin sur votre invite cmd:

web: gunicorn your_project_(main_folder)_name.wsgi

Si j'ai raison, la première fois que vous va pousser votre code à Heroku, il le redira

ne peut pas créer le fichier normal '/app/tmp/cache/.heroku/requirements.txt': Aucun fichier ou répertoire de ce type

mais ensuite il collectera tous les fichiers statiques puis réussira à se déployer.

La prochaine fois, il n'imprimera plus tous les fichiers statiques collectés.

Sinon, essayez d'exécuter

pip install gunicorn
pip install whitenoise
pip freeze>requirements.txt


0 commentaires