Werkzeug: Π’ вСрсии 1.0.0 ΡƒΠ΄Π°Π»Π΅Π½ Ρ€Π°Π½Π΅Π΅ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΉ ΠΊΠΎΠ΄.

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 6 Ρ„Π΅Π²Ρ€. 2020  Β·  22ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: pallets/werkzeug

Π Π΅Π»ΠΈΠ· 1.0.0, Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹ΠΉ 2 часа Π½Π°Π·Π°Π΄, ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π» критичСскиС измСнСния для людСй, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… flask. НС ΡƒΠ²Π΅Ρ€Π΅Π½, Π±Ρ‹Π» Π»ΠΈ это ΠΆΠ΅Π»Π°Π΅ΠΌΡ‹ΠΉ эффСкт, ΠΈ flask Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°ΠΊΡ€Π΅ΠΏΠΈΡ‚ΡŒ свою Π²Π΅Ρ€ΡΠΈΡŽ ΠΈΠ»ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ измСнСния Π² этом ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅.

Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π­Ρ‚ΠΎ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ уТасный ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΎΠΏΡ‹Ρ‚. Flask-WTF 0.14.3 с исправлСниями Π±Ρ‹Π» Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½ нСсколько часов Π½Π°Π·Π°Π΄. Как ΠΌΡ‹ выпускаСм выпуск, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π»ΠΈΡˆΠ°Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹Π΅ части экосистСмы Π½Π΅ Π±Ρ‹Π»ΠΈ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΊ этому?

Π― ΡΡ‡ΠΈΡ‚Π°ΡŽ, Ρ‡Ρ‚ΠΎ это Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΏΠΎΠ΄Π΄ΠΎΠ½ΠΎΠ² сломало ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρƒ мСня Π±Ρ‹Π» Π·Π°ΠΏΡƒΡ‰Π΅Π½, ΠΌΠ΅Π½Π΅Π΅ Ρ‡Π΅ΠΌ Π·Π° ΡˆΠ΅ΡΡ‚ΡŒ мСсяцСв.

ВсС 22 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, размСститС ΠΏΠΎΠ»Π½Ρ‹Π΅ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹Π΅ ссылки, Ссли Ρƒ вас Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π½Π΅ Π² Flask, ΠΈ Werkzeug Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ этот ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΉ ΠΈΠΌΠΏΠΎΡ€Ρ‚. 0.16 ΡƒΠΆΠ΅ 5 мСсяцСв Π²Ρ‹Π΄Π°Π΅Ρ‚ прСдупрСТдСния ΠΎΠ± устарСвании. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ эту Π²Π΅Ρ€ΡΠΈΡŽ Π² качСствС ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ шага, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠΌΠΏΠΎΡ€Ρ‚ Π±Ρ‹Π» ΠΈΠ·ΠΌΠ΅Π½Π΅Π½.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡΠΌ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌ, ΠΎΡ‚ΠΊΡ€Ρ‹Π² вопрос ΠΈΠ»ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΠ² PR Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅.

  • Flask-Admin 1.5.5
  • Колба-Π’Π°Π²ΠΈΠ»ΠΎΠ½ 1.0
  • Flask-BabelEx 0.9.4
  • flask-restplus (Π½Π΅ объСдинСн, Π½Π΅ поддСрТиваСтся Π² ΠΏΠΎΠ»ΡŒΠ·Ρƒ flask-restx)
  • flask-restx (объСдинСно, Π΅Ρ‰Π΅ Π½Π΅ Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½ΠΎ)
  • Flask-Testing 0.8.0
  • Flask-WTF 0.14.3
  • django-extension 2.2.8
  • pytest-ΠΊΠΎΠ»Π±Π° 0.15.1
Traceback (most recent call last):
  File "/usr/local/bin/pytest", line 8, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.7/site-packages/_pytest/config/__init__.py", line 73, in main
    config = _prepareconfig(args, plugins)
  File "/usr/local/lib/python3.7/site-packages/_pytest/config/__init__.py", line 224, in _prepareconfig
    pluginmanager=pluginmanager, args=args
  File "/usr/local/lib/python3.7/site-packages/pluggy/hooks.py", line 286, in __call__
    return self._hookexec(self, self.get_hookimpls(), kwargs)
  File "/usr/local/lib/python3.7/site-packages/pluggy/manager.py", line 93, in _hookexec
    return self._inner_hookexec(hook, methods, kwargs)
  File "/usr/local/lib/python3.7/site-packages/pluggy/manager.py", line 87, in <lambda>
    firstresult=hook.spec.opts.get("firstresult") if hook.spec else False,
  File "/usr/local/lib/python3.7/site-packages/pluggy/callers.py", line 203, in _multicall
    gen.send(outcome)
  File "/usr/local/lib/python3.7/site-packages/_pytest/helpconfig.py", line 89, in pytest_cmdline_parse
    config = outcome.get_result()
  File "/usr/local/lib/python3.7/site-packages/pluggy/callers.py", line 80, in get_result
    raise ex[1].with_traceback(ex[2])
  File "/usr/local/lib/python3.7/site-packages/pluggy/callers.py", line 187, in _multicall
    res = hook_impl.function(*args)
  File "/usr/local/lib/python3.7/site-packages/_pytest/config/__init__.py", line 794, in pytest_cmdline_parse
    self.parse(args)
  File "/usr/local/lib/python3.7/site-packages/_pytest/config/__init__.py", line 1000, in parse
    self._preparse(args, addopts=addopts)
  File "/usr/local/lib/python3.7/site-packages/_pytest/config/__init__.py", line 948, in _preparse
    self.pluginmanager.load_setuptools_entrypoints("pytest11")
  File "/usr/local/lib/python3.7/site-packages/pluggy/manager.py", line 299, in load_setuptools_entrypoints
    plugin = ep.load()
  File "/usr/local/lib/python3.7/site-packages/importlib_metadata/__init__.py", line 94, in load
    module = import_module(match.group('module'))
  File "/usr/local/lib/python3.7/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "/usr/local/lib/python3.7/site-packages/_pytest/assertion/rewrite.py", line 143, in exec_module
    exec(co, module.__dict__)
  File "/usr/local/lib/python3.7/site-packages/pytest_flask/plugin.py", line 14, in <module>
    from werkzeug import cached_property
ImportError: cannot import name 'cached_property' from 'werkzeug' (/usr/local/lib/python3.7/site-packages/werkzeug/__init__.py)

Π­Ρ‚ΠΎ pytest-flask, Π²Ρ‹ Π·Π°Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ с Π½ΠΈΠΌΠΈ ΡΠ²ΡΠ·Π°Ρ‚ΡŒΡΡ. ΠŸΠΎΡ…ΠΎΠΆΠ΅, Ρ‡Ρ‚ΠΎ pytest-flask 0.15.1 ΡƒΠΆΠ΅ Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½ с исправлСниСм.

+1, имСя ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ:
packages/flask_wtf/recaptcha/widgets.py", line 5, in <module> from werkzeug import url_encode ImportError: cannot import name 'url_encode'

+1 этот новСйший выпуск Ρ‚Π°ΠΊΠΆΠ΅ Π»ΠΎΠΌΠ°Π΅Ρ‚ наши зависимости. ΠŸΠΎΡ…ΠΎΠΆΠ΅, это ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° V1.0.0

`` ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ (послСдний Π²Ρ‹Π·ΠΎΠ² послСдний):
Π€Π°ΠΉΠ» "/home/ec2-user/butter_web/venv/lib64/python3.6/site-packages/flask/cli.py", строка 240, Π² locate_app
__import __ (имя_модуля)
Π€Π°ΠΉΠ» "/home/ec2-user/butter_web/butter.py", строка 1, Π²
ΠΈΠ· прилоТСния ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° прилоТСния, db
Π€Π°ΠΉΠ» "/home/ec2-user/butter_web/app/__init__.py", строка 8, Π²
ΠΈΠ· flask_admin.contrib.sqla ΠΈΠΌΠΏΠΎΡ€Ρ‚ ModelView
Π€Π°ΠΉΠ» "/home/ec2-user/butter_web/venv/lib64/python3.6/site-packages/flask_admin/contrib/sqla/__init__.py", строка 2, Π²
ΠΈΠ· .view ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ModelView
Π€Π°ΠΉΠ» "/home/ec2-user/butter_web/venv/lib64/python3.6/site-packages/flask_admin/contrib/sqla/view.py", строка 19, Π²
ΠΈΠ· flask_admin.model ΠΈΠΌΠΏΠΎΡ€Ρ‚ BaseModelView
Π€Π°ΠΉΠ» "/home/ec2-user/butter_web/venv/lib64/python3.6/site-packages/flask_admin/model/__init__.py", строка 2, Π²
ΠΈΠ· .base import BaseModelView
Π€Π°ΠΉΠ» "/home/ec2-user/butter_web/venv/lib64/python3.6/site-packages/flask_admin/model/base.py", строка 8, Π²
ΠΈΠ· werkzeug ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ secure_filename
ImportError: Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ имя secure_filename

КакоС здСсь Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅? Явная Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° 0.16.1 Π½Π΅ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ этого.

@ tjohnson4 Π‘ΠΌ. ΠΌΠΎΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π²Ρ‹ΡˆΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ. Ошибка, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»ΠΈ ΠΏΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ΅ Flask, Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ.

Π­Ρ‚ΠΎ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ уТасный ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ ΠΎΠΏΡ‹Ρ‚. Flask-WTF 0.14.3 с исправлСниями Π±Ρ‹Π» Π²Ρ‹ΠΏΡƒΡ‰Π΅Π½ нСсколько часов Π½Π°Π·Π°Π΄. Как ΠΌΡ‹ выпускаСм выпуск, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π»ΠΈΡˆΠ°Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹Π΅ части экосистСмы Π½Π΅ Π±Ρ‹Π»ΠΈ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΊ этому?

Π― ΡΡ‡ΠΈΡ‚Π°ΡŽ, Ρ‡Ρ‚ΠΎ это Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΏΠΎΠ΄Π΄ΠΎΠ½ΠΎΠ² сломало ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρƒ мСня Π±Ρ‹Π» Π·Π°ΠΏΡƒΡ‰Π΅Π½, ΠΌΠ΅Π½Π΅Π΅ Ρ‡Π΅ΠΌ Π·Π° ΡˆΠ΅ΡΡ‚ΡŒ мСсяцСв.

аналогичная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°

Traceback (most recent call last):
  File "/usr/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/usr/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/home/ubuntu/swagger-codegen/samples/server/petstore/flaskConnexion/swagger_server/__main__.py", line 3, in <module>
    import connexion
  File "/home/ubuntu/.local/lib/python3.6/site-packages/connexion/__init__.py", line 3, in <module>
    from .apis import AbstractAPI  # NOQA
  File "/home/ubuntu/.local/lib/python3.6/site-packages/connexion/apis/__init__.py", line 1, in <module>
    from .abstract import AbstractAPI  # NOQA
  File "/home/ubuntu/.local/lib/python3.6/site-packages/connexion/apis/abstract.py", line 14, in <module>
    from ..operation import Operation
  File "/home/ubuntu/.local/lib/python3.6/site-packages/connexion/operation.py", line 7, in <module>
    from .decorators import validation
  File "/home/ubuntu/.local/lib/python3.6/site-packages/connexion/decorators/validation.py", line 9, in <module>
    from werkzeug import FileStorage
ImportError: cannot import name 'FileStorage'

ΠΎΠ±Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡƒΡ‚ΡŒ
Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ werkzeug == 0.16.1 Π² requirements.txt Ρ€Π΅ΡˆΠΈΠ» это Π·Π° мСня

Бвязь @ Abdelsalam-Abbas исправила этот ΠΈΠΌΠΏΠΎΡ€Ρ‚ Π΅Ρ‰Π΅ Π² октябрС 2019 Π³ΠΎΠ΄Π° - ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΡΡ‚Π°Ρ€ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ?
https://github.com/zalando/connexion/releases/tag/2.4.0

Если ваш Flask-Session Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚:

File "/usr/local/lib/python3.8/site-packages/flask_session/__init__.py", line 61, in init_app                                                                                                                                                                                                                               
    app.session_interface = self._get_interface(app)                                                                                                                                                                                                                                                                          
  File "/usr/local/lib/python3.8/site-packages/flask_session/__init__.py", line 90, in _get_interface                                                                                                                                                                                                                         
    session_interface = FileSystemSessionInterface(                                                                                                                                                                                                                                                                           
  File "/usr/local/lib/python3.8/site-packages/flask_session/sessions.py", line 313, in __init__                                                                                                                                                                                                                              
    from werkzeug.contrib.cache import FileSystemCache                                                                                                                                                                                                                                                                        
ModuleNotFoundError: No module named 'werkzeug.contrib'  

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ werkzeug == 0.16.1 Π² requirements.txt Ρ€Π΅ΡˆΠΈΠ»ΠΎ это Π·Π° мСня

Если ваш Flask-RestPlus Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚:

Traceback (most recent call last):
  File "/export/home/hysdsops/sciflo/lib/python3.7/site-packages/flask/cli.py", line 240, in locate_app
    __import__(module_name)
  File "/export/home/hysdsops/sciflo/ops/pele/app.py", line 4, in <module>
    from pele import create_app, db
  File "/export/home/hysdsops/sciflo/ops/pele/pele/__init__.py", line 5, in <module>
    from flask_restplus import apidoc
  File "/export/home/hysdsops/sciflo/lib/python3.7/site-packages/flask_restplus/__init__.py", line 4, in <module>
    from . import fields, reqparse, apidoc, inputs, cors
  File "/export/home/hysdsops/sciflo/lib/python3.7/site-packages/flask_restplus/fields.py", line 17, in <module>
    from werkzeug import cached_property
ImportError: cannot import name 'cached_property' from 'werkzeug' (/export/home/hysdsops/sciflo/lib/python3.7/site-packages/werkzeug/__init__.py)

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ werkzeug == 0.16.1 Π² requirements.txt Ρ€Π΅ΡˆΠΈΠ»ΠΎ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ Π·Π° мСня.

НС ΠΌΠΎΠ³ Π±Ρ‹ ΠΊΡ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π΄Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ прСдставлСниС ΠΎ Ρ‚ΠΎΠΌ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΌΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ запроса фляги, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½Π½Ρ‹ΠΉ ΠΈΠ· werkzeug LocalProxy ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ Π΄Ρ€ΡƒΠ³ΠΎΠΉ вСрсии, Ρ‡Π΅ΠΌ Ρ‚Π°, Ρ‡Ρ‚ΠΎ Ρƒ мСня локально?

Начиная с этого выпуска я ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽ эту ΠΎΡˆΠΈΠ±ΠΊΡƒ:
File "/Users/lucas/Software/anaconda3/envs/pytest/lib/python3.6/site-packages/flask/json.py", line 251, in jsonify if current_app.config['JSONIFY_PRETTYPRINT_REGULAR'] and not request.is_xhr: File "/Users/lucas/Software/anaconda3/envs/pytest/lib/python3.6/site-packages/werkzeug/local.py", line 347, in __getattr__ return getattr(self._get_current_object(), name) AttributeError: 'Request' object has no attribute 'is_xhr'

is_xhr - свойство, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±Ρ‹Π»ΠΎ ΡƒΠ΄Π°Π»Π΅Π½ΠΎ Π² Flask 1.0 , Π½ΠΎ локально Ρƒ мСня установлСно 0.12.2 . Π§Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Ρ‚ΡŒ ясным, я ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΡŽ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ здСсь, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ошибки Π½Π΅Ρ‚ Π²ΠΎ Flask, скорСС я просто Π½Π΅ понимаю, ΠΏΠΎΡ‡Π΅ΠΌΡƒ / ΠΊΠ°ΠΊ LocalProxy Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ этого прилоТСния Flask, Ρ‚ΠΎΠ³Π΄Π° я оТидая.

@LucasLLC is_xhr Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π²Ρ…ΠΎΠ΄ΠΈΠ» Π² состав Flask Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ (Π΅ΡΡ‚ΡŒ Π»ΠΈ ссылка, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ говорится, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π±Ρ‹Π» ΡƒΠ΄Π°Π»Π΅Π½ Π² Flask 1.0? Π― Π½Π΅ Π²ΠΈΠΆΡƒ этого Π² ΠΆΡƒΡ€Π½Π°Π»Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ), скорСС это всСгда Π±Ρ‹Π» API Werkzeug, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдоставляСт Flask. Π§Ρ‚ΠΎ касаСтся Werkzeug, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΡƒΠ΄Π°Π»Π΅Π½ Π² 81e10efbf3a83daf09c55cd7cc13ac6c6464d405.

Если Π²Ρ‹ Π΅Ρ‰Π΅ этого Π½Π΅ сдСлали, я Π±Ρ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π» Π·Π°ΠΊΡ€Π΅ΠΏΠΈΡ‚ΡŒ ваши зависимости ΠΈ пСриодичСски ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒΡΡ - рутинная Ρ€Π°Π±ΠΎΡ‚Π°, которая облСгчаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π°ΠΊΠΈΡ… инструмСнтов, ΠΊΠ°ΠΊ поэзия .

@pgjones, Π² ΠΈΠ΄Π΅Π°Π»Π΅, ΠΌΡ‹ Π΄Π΅Π»Π°Π΅ΠΌ выпуск исправлСния ошибок для flask 0.12, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ привязываСт werkzeug ΠΊ <1.0.0. Π’ ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ², это ΠΏΠ»ΠΎΡ…ΠΎΠΉ Π·Π½Π°Ρ‡ΠΎΠΊ Π² Flask.

Π’Π°ΠΊΠΆΠ΅ Π΄Π°, этот API фактичСски являСтся Flask API, ΠΈ ΠΎΠ½ Π±Ρ‹Π» Π·Π°Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ ΠΊΠ°ΠΊ Ρ‚Π°ΠΊΠΎΠ²ΠΎΠΉ: https://flask.palletsprojects.com/en/0.12.x/api/#flask.Request.is_xhr

@LucasLLC is_xhr Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π²Ρ…ΠΎΠ΄ΠΈΠ» Π² состав Flask Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ (Π΅ΡΡ‚ΡŒ Π»ΠΈ ссылка, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ говорится, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π±Ρ‹Π» ΡƒΠ΄Π°Π»Π΅Π½ Π² Flask 1.0? Π― Π½Π΅ Π²ΠΈΠΆΡƒ этого Π² ΠΆΡƒΡ€Π½Π°Π»Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ), скорСС это всСгда Π±Ρ‹Π» API Werkzeug, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдоставляСт Flask. Π§Ρ‚ΠΎ касаСтся Werkzeug, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΡƒΠ΄Π°Π»Π΅Π½ Π² 81e10ef .

Ах, моя ошибка. Π― ссылался Π½Π° ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, сгСнСрированноС этим ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ, ΠΈ Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π», Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ исходит ΠΎΡ‚ Werkzeug, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ Π³ΠΎΡ€Π°Π·Π΄ΠΎ больший смысл.

Если Π²Ρ‹ Π΅Ρ‰Π΅ этого Π½Π΅ сдСлали, я Π±Ρ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π» Π·Π°ΠΊΡ€Π΅ΠΏΠΈΡ‚ΡŒ ваши зависимости ΠΈ пСриодичСски ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒΡΡ - рутинная Ρ€Π°Π±ΠΎΡ‚Π°, которая облСгчаСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π°ΠΊΠΈΡ… инструмСнтов, ΠΊΠ°ΠΊ поэзия .

Бпасибо Π·Π° совСт! ЗаглянСм Π² стихи.

Π’ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΡ€ΠΈ установкС odoo12:

    import werkzeug.contrib.fixers
ImportError: No module named 'werkzeug.contrib'

Однако Ρ€Π΅ΡˆΠΈΠ» это с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ

Werkzeug==0.16.1

такая ΠΆΠ΅ ошибка ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π°

ModuleNotFoundError: Π½Π΅Ρ‚ модуля с ΠΈΠΌΠ΅Π½Π΅ΠΌ 'werkzeug.contrib'

Вакая ΠΆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с ΠΊΠΎΠ»Π±ΠΎΠΉ

Установка Werkzeug==0.16.1 устранила ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ.

`` ''
ΠΈΠ· flask_admin.contrib.sqla ΠΈΠΌΠΏΠΎΡ€Ρ‚ ModelView
Π€Π°ΠΉΠ» "/usr/local/lib/python3.6/site-packages/flask_admin/contrib/sqla/__init__.py", строка 2, Π²

ΠΈΠ· .view ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ModelView
Π€Π°ΠΉΠ» "/usr/local/lib/python3.6/site-packages/flask_admin/contrib/sqla/view.py", строка 18, Π²

ΠΈΠ· flask_admin.model ΠΈΠΌΠΏΠΎΡ€Ρ‚ BaseModelView
Π€Π°ΠΉΠ» "/usr/local/lib/python3.6/site-packages/flask_admin/model/__init__.py", строка 2, Π²

ΠΈΠ· .base import BaseModelView
Π€Π°ΠΉΠ» "/usr/local/lib/python3.6/site-packages/flask_admin/model/base.py", строка 8, Π²

ΠΈΠ· werkzeug ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ secure_filename
ImportError: Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ имя secure_filename

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ