web-dev-qa-db-fra.com

Pipfile.lock obsolète

J'essaie de déployer un grand projet Django à Heroku. J'ai installé Heroku CLI, connecté, créé une application et exécuté:

git Push heroku master

J'ai un Pipfile et exigences.txt déjà mis en place. J'ai ajouté un fichier runtime.txt pour spécifier que j'ai besoin de Python 2.7. C'est aussi dans le Pipfile. Voici ce que je tire de pousser à heroku:

$ git Push heroku master
Counting objects: 12159, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (4853/4853), done.
Writing objects: 100% (12159/12159), 20.94 MiB | 1.82 MiB/s, done.
Total 12159 (delta 6859), reused 12036 (delta 6751)
remote: Compressing source files... done.
remote: Building source:
remote: 
remote: -----> Python app detected
remote: -----> Installing python-3.6.4
remote: -----> Installing pip
remote: -----> Installing dependencies with Pipenv 11.8.2…
remote:        Your Pipfile.lock (3b2ba9) is out of date. Expected: (83a5b4).
remote:        Aborting deploy.
remote:  !     Push rejected, failed to compile Python app.
remote: 
remote:  !     Push failed
remote: Verifying deploy....
remote: 
remote: !   Push rejected to camp-infinity.
remote: 
To https://git.heroku.com/camp-infinity.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to Push some refs to 'https://git.heroku.com/camp-infinity.git'

Pour une raison quelconque, il essaie d'installer Python 3 et n'aime pas non plus mon fichier Pipfile.lock. J'ai essayé de le supprimer et de le générer à nouveau avec l'installation de pipenv mais cela n'a rien changé.

12
Jacob Franklin

Vous rencontrez le même problème en travaillant sur un projet, dans la branche que vous poussez vers Heroku, exécutez

pipenv lock

et il mettra à jour le fichier Pipfile.lock. :)

15
MNSH

J'ai enlevé le Pipfile.lock et ai engagé sa suppression. Le processus de construction de Heroku s'est plaint de ne pas être là, mais il s'est déployé avec succès ...

-----> Python app detected
 !     No 'Pipfile.lock' found! We recommend you commit this into your repository.
-----> Installing pip
-----> Installing dependencies with Pipenv 11.8.2…
       Installing dependencies from Pipfile…
-----> Discovering process types
       Procfile declares types -> worker
-----> Compressing...
       Done: 189.9M
-----> Launching...
       Released v5
1
radiodario

J'ai eu le même problème et cela était dû à un lien symbolique pointant vers Pipfile.lock.

Après avoir cloné le référentiel sur mon environnement Mac OS local, pour certaines raisons, le lien d'origine était en quelque sorte rompu, ce qui entraînait un Your Pipfile.lock (3b2ba9) is out of date. Expected: (83a5b4) lors de l'envoi à Heroku.

Le simple fait de supprimer le "vieux" lien symbolique et de le recréer à partir de mon env. Local a résolu le problème.

1
David D.

Vous devez fournir soit un:

  1. Pipfile et Pipfile.lock correspondant

ou

  1. requirements.txt (et éventuellement runtime.txt)

Si vous utilisez une Pipfile puis git rm requirements.txt runtime.txt et assurez-vous de git add Pipfile Pipfile.lock. git commit et essayez ensuite votre git Push à heroku.

https://devcenter.heroku.com/articles/python-runtimes

1
davejagoda

À l'aide de la CLI Heroku, j'utilisais git Push heroku master à partir d'une branche locale qui n'était pas master, lorsque cette erreur exacte est apparue:

remote: -----> Python app detected
remote: -----> Installing pip
remote: -----> Installing dependencies with Pipenv 2018.5.18…
remote:        Your Pipfile.lock (38bf21) is out of date. Expected: (e4987e).
remote:        Aborting deploy.
remote:  !     Push rejected, failed to compile Python app.
remote:
remote:  !     Push failed
remote: Verifying deploy...

Le déploiement à partir de la branche master l'a corrigé.

Si vous voulez envoyer une branche locale au maître Heroku qui n'est pas master, exécutez git Push heroku branchname:master.

0
Mason Morrow