Werkzeug: تمت إزالة الإصدار 1.0.0 من التعليمات البرمجية التي تم إهمالها مسبقًا

تم إنشاؤها على ٦ فبراير ٢٠٢٠  ·  22تعليقات  ·  مصدر: pallets/werkzeug

الإصدار 1.0.0 الذي تم دفعه قبل ساعتين نشر تغييرات متقطعة للأشخاص الذين يستخدمون القارورة. لست متأكدًا مما إذا كان التأثير المطلوب ويجب أن تثبت القارورة نسختها أو ما إذا كان يلزم إجراء تغييرات في هذا المشروع.

التعليق الأكثر فائدة

هذه تجربة مستخدم مروعة تمامًا. تم إصدار Flask-WTF 0.14.3 مع الإصلاحات منذ ساعات . كيف ندفع إصدارًا يزيل الدعم عندما لم تكن أجزاء كبيرة من النظام البيئي جاهزة لذلك؟

أعتقد أن هذه هي المرة الثالثة التي كسر فيها تحديث لإحدى مكتبات المنصات الكود الذي كنت أقوم بتشغيله في أقل من ستة أشهر.

ال 22 كومينتر

يرجى نشر tracebacks كاملة إذا واجهت أي مشاكل.

المشكلة ليست مع Flask ، ولن تستمر Werkzeug في دعم هذه الواردات المهملة. تم إصدار 0.16 لتحذيرات الإهلاك لمدة 5 أشهر. استخدم هذا الإصدار كخطوة وسيطة لتحديد ما تغيرت الواردات.

يمكنك المساعدة في الامتدادات والمشاريع الأخرى عن طريق فتح قضية أو تقديم بيان عام في المشروع ذي الصلة.

  • Flask-Admin 1.5.5
  • Flask-Babel 1.0.2 تحديث
  • قارورة بابل إكس 0.9.4
  • flask-restplus (غير مدمج ، غير محفوظ لصالح flask-restx)
  • flask-restx (مدمج ، لم يتم إصداره بعد)
  • اختبار القارورة 0.8.0
  • Flask-WTF 0.14.3
  • ملحقات دجانجو 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

`` Traceback (آخر مكالمة أخيرة):
ملف "/home/ec2-user/butter_web/venv/lib64/python3.6/site-packages/flask/cli.py" ، السطر 240 ، في locate_app
__import __ (module_name)
ملف "/home/ec2-user/butter_web/butter.py" ، السطر 1 ، في
من تطبيق استيراد التطبيق ، ديسيبل
ملف "/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 ، في
من عرض استيراد 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 ، في
من قاعدة استيراد BaseModelView
ملف "/home/ec2-user/butter_web/venv/lib64/python3.6/site-packages/flask_admin/model/base.py" ، السطر 8 ، في
من werkzeug استيراد secure_filename
خطأ في الاستيراد: لا يمكن استيراد الاسم "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'

الحل
add werkzeug == 0.16.1 إلى requirements.txt يحلها بالنسبة لي

@ Abdelsalam-Abbas connexion تم إصلاح هذا الاستيراد مرة أخرى في أكتوبر 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 's 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؟ لا يمكنني رؤيته في سجل التغيير) بل كان دائمًا واجهة برمجة تطبيقات Werkzeug التي يعرضها Flask. من حيث Werkzeug يمكنك أن ترى أنه تمت إزالته في 81e10efbf3a83daf09c55cd7cc13ac6c6464d405.

إذا لم تكن بالفعل ، فإنني أوصي بتثبيت تبعياتك وترقيتها بشكل دوري ، وهو عمل روتيني يسهل بواسطة أدوات مثل الشعر .

pgjones من الناحية المثالية ، نقوم بإصدار bugfix للقارورة 0.12 والتي

نعم أيضًا ، واجهة برمجة التطبيقات هذه هي واجهة برمجة تطبيقات Flask بشكل فعال وقد تم توثيقها على هذا النحو: https://flask.palletsprojects.com/en/0.12.x/api/#flask.Request.is_xhr

LucasLLC is_xhr لم يكن أبدًا جزءًا مباشرًا من Flask (هل هناك مرجع يشير إلى أنه تمت إزالته في Flask 1.0؟ لا يمكنني رؤيته في سجل التغيير) بل كان دائمًا واجهة برمجة تطبيقات 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 ، في

من عرض استيراد 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 ، في

من قاعدة استيراد BaseModelView
ملف "/usr/local/lib/python3.6/site-packages/flask_admin/model/base.py" ، السطر 8 ، في

من werkzeug استيراد secure_filename
خطأ في الاستيراد: لا يمكن استيراد الاسم "secure_filename"

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات