J'essaie de pousser un projet Django à Heroku, mais il continue de me dire que ce qui suit:
/app/.heroku/python/bin/pip: No such file or directory
Le message d'erreur complet est présenté ci-dessous. Comment puis-je résoudre ce problème? Dois-je d'abord installer pip sur Heroku?
Counting objects: 451, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (383/383), done.
Writing objects: 100% (451/451), 1.07 MiB | 349.00 KiB/s, done.
Total 451 (delta 87), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Python app detected
remote: -----> Installing python-3.5.1
remote: -----> Installing pip
remote: -----> Installing requirements with pip
remote: /app/tmp/buildpacks/779a8bbfbbe7e1b715476c0b23fc63a2103b3e4131eda558669aba8fb5e6e05682419376144189b29beb5dee6d7626b4d3385edb0954bffea6c67d8cf622fd51
/bin/steps/pip-install: line 5: /app/.heroku/python/bin/pip: No such file or directory
remote: ! Push rejected, failed to compile Python app.
remote:
remote: ! Push failed
remote: Verifying deploy...
remote:
remote: ! Push rejected to rocky-tor-70537.
remote:
To https://git.heroku.com/rocky-tor-70537.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to Push some refs to 'https://git.heroku.com/rocky-tor-70537.git'
Mon fichier exigences.txt est vide, comme indiqué ci-dessous.
# this is for Heroku and other servers.
# Locally, you should install requirements_base.txt
-r requirements_server.txt
Mes exigences_server.txt est comme suit:
-r requirements_base.txt
# packages that are unnecessary on Windows/Mac local dev environments, or don't install properly
psycopg2>=2.5.1
Mon Requirements_base.txt est comme suit:
appdirs==1.4.3
asgi-redis==0.14.1
asgiref==0.14.0
autobahn==0.16.0
Babel==2.3.4
boto==2.42.0
channels==0.17.3
colorama==0.3.7
contextlib2==0.5.4
coverage==4.2
daphne==0.14.3
dj-database-url==0.4.1
Django==1.8.8
Django-countries==4.0
Django-easymoney==0.7.1
Django-floppyforms==1.7.0
Django-idmap==0.4.1
Django-Vanilla-views==1.0.4
djangorestframework==3.4.6
honcho==0.7.1
huey==1.2.0
IPy==0.83
mock==2.0.0
msgpack-python==0.4.8
otree-core==1.2.8
otree-save-the-change==1.1.3
packaging==16.8
pbr==1.10.0
py==1.4.31
pyparsing==2.2.0
pytest==2.9.2
pytest-Django==3.0.0
python-redis-lock==3.2.0
pytz==2016.6.1
raven==5.25.0
redis==2.10.5
requests==2.11.1
schema==0.6.2
six==1.10.0
Twisted==16.2.0
txaio==2.5.1
unicodecsv==0.14.1
whitenoise==3.2.1
ws4py==0.3.5
XlsxWriter==0.9.3
zope.interface==4.2.0
J'ai rencontré ce problème récemment et j'ai pu l'ajuster en modifiant la version de python dans le fichier runtime.txt.
Passer à
python-3.5.2
Mais, en fonction des exigences que vous avez énumérées, il semble que vous n’obtenez jamais le fichier Requirements_base.txt.
Dans votre fichier exigences_server.txt, changez-le pour que:
-r requirements_base.txt
est répertorié ici.
J'ai simplement eu deux fautes de frappe dans mon runtime.txt
Assurez-vous qu'il est écrit python-3.6.1
et non pas Python-3.6.1
ou python 3.6.1
Le message d'erreur est assez mauvais. Que ce message sauve quelqu'un 30 minutes.
On dirait que Heroku ne supporte plus que seulement3.6.1
et 2.7.13
versions Python.
https://devcenter.heroku.com/articles/python-runtimes#supported-python-runtimes
J'ai rencontré ce même problème sous Windows en essayant de déployer une application Python sur Heroku. Il s'avère que c'était un problème d'encodage de fichier. En fonction de la manière dont vous créez Procfile, Requirements.txt et runtime.txt, votre codage peut varier.
En supposant que vous utilisez Windows, utilisez PowerShell. Obtenez la fonction PowerShell suivante et collez-la dans votre console PowerShell. En utilisant ceci, vous pouvez vérifier l’encodage de votre fichier:
get-fileencoding requirements.txt
Si cela revient, à part l’ascii, c’est probablement le problème. Dans mon cas, mes trois fichiers étaient tous unicode. Je viens de faire cela pour les forcer à utiliser ASCII:
'python-3.6.1' | out-file -en ascii runtime.txt
Vous pouvez également utiliser un éditeur, puis enregistrer le fichier en utilisant le codage ASCII.
Une fois que j'ai apporté cette modification à mes fichiers Procfile, Requirements.txt et runtime.txt, j'ai pu déployer avec succès sur Heroku.
Oh mon dieu - j'ai supprimé une ligne vide dans mon requirements/production.txt
afin d'essayer de changer le numéro de ligne et tout a commencé à fonctionner (ou plutôt à ma prochaine erreur complètement différente)
Je passais du moteur d'application à heroku et j'avais un fichier setup.cfg dans le répertoire racine avec le contenu suivant:
[install]
prefix=
Cela a causé ces problèmes lors du déploiement. Après avoir enlevé tout s'est bien passé.
D'après la documentation de Heroku, les deux seuls environnements d'exécution Python officiellement pris en charge sont 2.7.13 et 3.6.1 . J'ai récemment eu le même problème avec le déploiement de oTree à heroku, mais dès que j'ai changé runtime.txt
en python-3.6.1
, tout s'est passé sans encombre.
Si vous utilisez le buildpack heroku par défaut, je suppose que le fichier exigences.txt de votre dossier de projet est manquant.
J'ai eu le même problème sur Ubuntu 16.04 et après avoir installé manuellement Heroku CLI, en utilisant
wget https://cli-assets.heroku.com/branches/stable/heroku-REPLACE_ME_OS-REPLACE_ME_Arch.tar.gz -O heroku.tar.gz
mkdir -p /usr/local/lib
tar -xvzf heroku.tar.gz -C /usr/local/lib
/usr/local/lib/heroku/install
Ça a marché comme sur des roulettes.
Dans le dossier, j'ai 4 fichiers. Le premier est un script python, le second est procfile (sans extension) avec le contenu web: gunicorn skripta1:app
. Troisième est exigences.txt avec:
appdirs==1.4.3
bokeh==0.12.5
click==6.7
Flask==0.12.2
gunicorn==19.7.1
itsdangerous==0.24
Jinja2==2.9.6
MarkupSafe==1.0
numpy==1.12.1
packaging==16.8
pandas==0.20.1
pandas-datareader==0.4.0
pyparsing==2.2.0
python-dateutil==2.6.0
pytz==2017.2
PyYAML==3.12
requests==2.14.2
requests-file==1.4.2
requests-ftp==0.3.1
six==1.10.0
tornado==4.5.1
Werkzeug==0.12.2
Et le quatrième est runtime.txt avec python-3.5.2