Приложение Pyton не может быть развернуто в Heroku - PullRequest
1 голос
/ 29 марта 2020

Я нахожу эту ошибку при ее развертывании на героку. cp: невозможно создать обычный файл '/app/tmp/cache/.heroku/requirements.txt': нет такого файла или каталога

Файл проекта: web: python app.py

runtime.txt python -3.7.6

проекта project.txt


    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

Кто-нибудь сталкивался с этим? пожалуйста, направьте меня, если так.

Ответы [ 3 ]

0 голосов
/ 06 апреля 2020

Я не знаю, если это ваш случай, эта ошибка может произойти, если вы допустили ошибку при указании, какой файл запускать в Procfile.

Например, в вашем случае, если вместо app.py Ваше имя файла другое.

0 голосов
/ 13 апреля 2020

Попробуйте,

в приглашении cmd:

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

В основной папке вашего проекта добавьте файл с именем Procfile (без расширения), и внутри этого типа файла:

web: gunicorn your_project_(main_folder)_name.wsgi

Примечание: В вашем procfile вы набрали app.py, но это должен быть my_project.wsgi. Возможно, этого достаточно для решения вашей проблемы.

В основной папке вашего проекта добавьте папку с именем staticfiles, а внутри этой папки добавьте файл с именем __init__.py и оставьте его пустым.

Затем в вашем settings.py добавьте:

STATICSTORAGE = "Whitenoise.storage.CompressedManifestStaticFilesStorage"

Снова в settings.py, внутри MIDDLEWARE, добавьте:

'whitenoise.middleware.WhiteNoiseMiddleware',

Наконец, в командной строке cmd:

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

Если я прав, в первый раз вы отправите sh свой код в Heroku, он снова скажет

не может создать обычный файл '/app/tmp/cache/.heroku /requirements.txt ': Нет такого файла или каталога

, но затем он соберет все файлы stati c и затем успешно развернет.

В следующий раз он будет больше не распечатывайте все собранные файлы stati c.

0 голосов
/ 29 марта 2020

Было бы здорово, если бы вы показали скрипт, который пытаетесь запустить. Без этого, я предполагаю, что ошибка может быть связана с неверной конфигурацией в procfile.

Попробуйте заменить web на worker в вашем Procfile.

Если у вас есть "сеть" Тип процесса в вашем Procfile, динам, запускающий этот процесс, должен привязаться к назначенному ему $ PORT в течение 60 секунд (по умолчанию), чтобы иметь возможность отвечать на входящие веб-запросы через http / s. Если этого не произойдет, Heroku снимает динамо, как объяснено здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...