Не удалось нажать на Heroku:/app/.heroku/python/bin/pip:Нет такого файла или каталога

Я пытаюсь нажать проект Django на Heroku, но он продолжает говорить мне, что следующее:

/app/.heroku/python/bin/pip: No such file or directory

Полное сообщение об ошибке показано ниже. Как я могу решить эту проблему? Нужно ли сначала установить pip на 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'

Мой файл требований .txt пуст, как показано ниже.

# this is for Heroku and other servers.
# Locally, you should install requirements_base.txt
-r requirements_server.txt

Мои требования_server.txt следующие:

-r requirements_base.txt
# packages that are unnecessary on Windows/Mac local dev environments, or don't install properly
psycopg2>=2.5.1

Мои требования_base.txt следующие:

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

Ответ 1

Недавно я столкнулся с этой проблемой и смог ее отрегулировать, изменив версию python в файле runtime.txt.

Переход на

python-3.5.2

Но исходя из ваших требований, которые вы указали, кажется, что вы никогда не добираетесь до требования_base.txt.

В файле requirements_server.txt измените его так, чтобы:

-r requirements_base.txt 
Здесь указан

.

Ответ 2

У меня просто было два опечатка в моем runtime.txt

Убедитесь, что он говорит python-3.6.1, а не python-3.6.1 или python 3.6.1

Сообщение об ошибке довольно плохое. Пусть этот пост сохранит кого-то 30 минут.

Ответ 3

Если вы используете стандартный пакет heroku buildpack, я бы предположил, что файл requirements.txt в папке проекта отсутствует.

Ответ 4

У меня была та же проблема на Ubuntu 16.04 и после ручной установки CLI Heroku, используя

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

он работал как шарм.

В папке у меня 4 файла. Один из них - python script, второй - procfile (без расширения) с содержимым web: gunicorn skripta1:app. В-третьих, request.txt с:

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 

И четвертый - runtime.txt с python-3.5.2

Ответ 5

Согласно документации Heroku, только два официально поддерживаемых времени исполнения python - 2.7.13 и 3.6.1. Недавно у меня была такая же проблема с развертыванием oTree в heroku, но как только я сменил runtime.txt на python-3.6.1, все прошло гладко.

Ответ 6

О, дорогая, я удалил пустую строку в моем requirements/production.txt, чтобы попытаться изменить номер строки, и все началось (или, вернее, к моей следующей совершенно другой ошибке)

Ответ 7

Я столкнулся с этой же проблемой в Windows, пытаясь развернуть приложение Python в Heroku. Оказывается, это проблема с кодировкой файлов. В зависимости от того, как вы создаете Procfile, требования .txt и runtime.txt, ваша кодировка может отличаться.

Предполагая, что вы используете Windows, используйте PowerShell. Получите следующую функцию PowerShell и вставьте ее в консоль PowerShell. Используя это, вы можете проверить кодировку вашего файла: get-fileencoding requirements.txt Если он вернет что-нибудь помимо ascii, возможно, проблема. В моем случае мои три файла были все unicode. Я просто сделал это, чтобы заставить их ASCII: 'python-3.6.1' | out-file -en ascii runtime.txt Вы также можете использовать редактор, а затем сохранить файл с использованием кодировки ASCII.

Как только я внес это изменение в свой файл Procfile, requirements.txt и runtime.txt, я смог успешно выполнить развертывание в Heroku.

Ответ 9

Я переключился с механизма приложения на heroku и имел файл setup.cfg в корневом каталоге со следующим содержимым:

[install]
prefix= 

Это вызвало проблемы при развертывании. После удаления все прошло хорошо.