Работник Heroku внезапно падает, в журналах не отображаются мои сценарии. Что случилось? - PullRequest
0 голосов
/ 07 февраля 2020

У меня есть проект flask, gunicorn, postgresql, размещенный на heroku, и он неожиданно потерпел неудачу. Я могу получить доступ к журналам, но я не написал сценарий, поэтому я в замешательстве. Я ничего не добавил между «работает» и «не работает», поэтому я не знаю, с чего начать.

Журнал можно найти в этом pastebin . Последняя часть:

2020-02-06T21:09:02.748093+00:00 app[web.1]: from werkzeug.contrib.cache import FileSystemCache
2020-02-06T21:09:02.748100+00:00 app[web.1]: ModuleNotFoundError: No module named 'werkzeug.contrib'
2020-02-06T21:09:02.748789+00:00 app[web.1]: [2020-02-06 21:09:02 +0000] [10] [INFO] Worker exiting (pid: 10)

Я пытался добавить werkzeug в файл needs.txt, но это не помогло. Что было бы странно в любом случае, потому что оно работало нормально без изменения в требовании.

Если бы вы могли помочь мне сократить файл require.txt, это было бы очень признательно.

Исходные требования.txt:

cs50
Flask
Flask-Session
requests
gunicorn
psycopg2-binary
openpyxl

Новые, рабочие:

astroid==2.3.3
attrs==19.3.0
Authlib==0.13
autopep8==1.5
awscli==1.17.9
backports.shutil-get-terminal-size==1.0.0
backports.shutil-which==3.5.2
beautifulsoup4==4.8.2
botocore==1.14.9
bs4==0.0.1
cairocffi==1.1.0
CairoSVG==2.4.2
certifi==2019.11.28
cffi==1.13.2
chardet==3.0.4
check50==3.0.10
Click==7.0
colorama==0.4.1
compare50==1.1.2
cryptography==2.8
cs50==5.0.3
cssselect2==0.2.2
cycler==0.10.0
defusedxml==0.6.0
docutils==0.15.2
EditorConfig==0.12.2
et-xmlfile==1.0.1
Flask==1.1.1
Flask-Session==0.3.1
help50==3.0.0
html5lib==1.0.1
icdiff==1.9.1
idna==2.8
ikp3db==1.4.1
intervaltree==2.1.0
isort==4.3.21
itsdangerous==1.1.0
jdcal==1.4.1
jellyfish==0.7.2
Jinja2==2.11.1
jmespath==0.9.4
jsbeautifier==1.10.3
kiwisolver==1.1.0
lazy-object-proxy==1.4.3
lib50==2.0.7
logger==1.4
MarkupSafe==1.1.1
matplotlib==3.1.3
mccabe==0.6.1
natsort==7.0.1
nltk==3.4.5
numpy==1.18.1
oauthlib==3.1.0
openpyxl==3.0.3
pandas==1.0.0
pexpect==4.8.0
Pillow==7.0.0
plotly==4.5.0
psycopg2-binary==2.8.4
ptyprocess==0.6.0
pyasn1==0.4.8
pycodestyle==2.5.0
pycparser==2.19
Pygments==2.5.2
pylint==2.4.4
pylint-django==2.0.13
pylint-flask==0.6
pylint-plugin-utils==0.6
pyparsing==2.4.6
PyPDF2==1.26.0
Pyphen==0.9.5
python-dateutil==2.8.1
python-magic==0.4.15
pytz==2019.3
PyYAML==5.2
render50==3.1.3
requests==2.22.0
requests-oauthlib==1.3.0
retrying==1.3.3
rsa==3.4.2
s3cmd==2.0.2
s3transfer==0.3.2
six==1.14.0
sortedcontainers==2.1.0
soupsieve==1.9.5
SQLAlchemy==1.3.13
sqlparse==0.3.0
style50==2.7.4
submit50==3.0.2
termcolor==1.1.0
tinycss2==1.0.2
tqdm==4.42.1
twython==3.7.0
typed-ast==1.4.1
urllib3==1.25.8
virtualenv==16.7.9
WeasyPrint==49
webencodings==0.5.1
Werkzeug==0.16.1
wrapt==1.11.2
gunicorn

Ответы [ 2 ]

2 голосов
/ 07 февраля 2020

Werkzeug выпустил новую версию вчера:

История выпусков

Очевидно, werkzeug.contrib был перемещен в отдельный модуль

Рекомендуется попробовать

./env/bin/pip install werkzeug==0.16.0
0 голосов
/ 15 февраля 2020

Вот еще одно решение, которое может работать для вас.

С тех пор как Werkzeug 1.0.0 удалил устаревший код из werkzeug.contrib.

Я столкнулся с той же проблемой при попытке использовать Proxyfix в werkzeug==1.0.0

После понижения до werkzeug==0.16.0 я получил следующие предупреждения:

DeprecationWarning: 'werkzeug.contrib.fixers.ProxyFix' has moved to 'werkzeug.middleware.proxy_fix.ProxyFix'.
This import is deprecated as of version 0.15 and will be removed in 1.0.
DeprecationWarning: 'werkzeug.contrib.cache' is deprecated as of version 0.15 and will be removed in version 1.0. It has moved to pallets.
from werkzeug.contrib.cache import FileSystemCache

Чтобы устранить проблемы:

pip install werkzeug==1.0.0

Для ProxyFix :

from werkzeug.middleware.proxy_fix import ProxyFix

Для FileSystemCache вам потребуется установить поддоны:

pip install -U cachelib
from cachelib.file import FileSystemCache

Надеюсь, это поможет вам решить ваши проблемы ?

...