web-dev-qa-db-fra.com

Échec de la transmission à Heroku: /app/.heroku/python/bin/pip:No

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
12
user3821012

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.

14

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.

6
David Nathan

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

1
Vladimir Osintsev

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.

0
James S.

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)

0
hum3

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é.

0
devza

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.

0

Si vous utilisez le buildpack heroku par défaut, je suppose que le fichier exigences.txt de votre dossier de projet est manquant. 

0
t_io

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

0
Dalibor