باستخدام Python 3.8.0a3 و Werkzeug 0.15.4 ، يؤدي تجميع منشئي القواعد إلى TypeError: required field "type_ignores" missing from Module
. يبدو أن ast.Module
يحتوي على وسيطة مطلوبة جديدة.
أعتقد أن هذه هي نفس المشكلة مثل https://github.com/beetbox/beets/issues/3201#issuecomment -478341869
flask run
* Serving Flask app "flask_test.py"
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
Traceback (most recent call last):
File "d:\tool\python\38\lib\runpy.py", line 192, in _run_module_as_main
return _run_code(code, main_globals, None,
File "d:\tool\python\38\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "d:\tool\python\38\Scripts\flask.exe\__main__.py", line 9, in <module>
File "d:\tool\python\38\lib\site-packages\flask\cli.py", line 906, in main
cli.main(args=args, prog_name=name)
File "d:\tool\python\38\lib\site-packages\flask\cli.py", line 569, in main
return super(FlaskGroup, self).main(*args, **kwargs)
File "d:\tool\python\38\lib\site-packages\click\core.py", line 717, in main
rv = self.invoke(ctx)
File "d:\tool\python\38\lib\site-packages\click\core.py", line 1137, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "d:\tool\python\38\lib\site-packages\click\core.py", line 956, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "d:\tool\python\38\lib\site-packages\click\core.py", line 555, in invoke
return callback(*args, **kwargs)
File "d:\tool\python\38\lib\site-packages\click\decorators.py", line 64, in new_func
return ctx.invoke(f, obj, *args, **kwargs)
File "d:\tool\python\38\lib\site-packages\click\core.py", line 555, in invoke
return callback(*args, **kwargs)
File "d:\tool\python\38\lib\site-packages\flask\cli.py", line 779, in run_command
app = DispatchingApp(info.load_app, use_eager_loading=eager_loading)
File "d:\tool\python\38\lib\site-packages\flask\cli.py", line 300, in __init__
self._load_unlocked()
File "d:\tool\python\38\lib\site-packages\flask\cli.py", line 324, in _load_unlocked
self._app = rv = self.loader()
File "d:\tool\python\38\lib\site-packages\flask\cli.py", line 381, in load_app
app = locate_app(self, import_name, name)
File "d:\tool\python\38\lib\site-packages\flask\cli.py", line 236, in locate_app
__import__(module_name)
File "D:\flask_test.py", line 3, in <module>
app = Flask(__name__)
File "d:\tool\python\38\lib\site-packages\flask\app.py", line 559, in __init__
self.add_url_rule(
File "d:\tool\python\38\lib\site-packages\flask\app.py", line 67, in wrapper_func
return f(self, *args, **kwargs)
File "d:\tool\python\38\lib\site-packages\flask\app.py", line 1217, in add_url_rule
self.url_map.add(rule)
File "d:\tool\python\38\lib\site-packages\werkzeug\routing.py", line 1388, in add
rule.bind(self)
File "d:\tool\python\38\lib\site-packages\werkzeug\routing.py", line 730, in bind
self.compile()
File "d:\tool\python\38\lib\site-packages\werkzeug\routing.py", line 794, in compile
self._build = self._compile_builder(False).__get__(self, None)
File "d:\tool\python\38\lib\site-packages\werkzeug\routing.py", line 951, in _compile_builder
code = compile(module, "<werkzeug routing>", "exec")
TypeError: required field "type_ignores" missing from Module
هذا يحتاج إلى إبلاغ CPython كتغيير واجهة برمجة تطبيقات غير موثق وغير متوافق مع الإصدارات السابقة في المكتبة القياسية.
asottile ما هي أفكارك؟ لست متأكدًا من أنه يجب علينا إصلاح هذا الأمر حتى الآن ، فقد تسبب Python 3.8 في إصلاح المشكلات العشوائية لفترة طويلة.
يبدو أنه تم الإبلاغ عن هذا في CPython https://bugs.python.org/issue35894 وكان القرار هو أن رمز المصب يجب أن يضيف if sys.version_info >= (3, 8)
. : unamused:
😡 يا له من قرار أحمق - سأقوم بإجراء إصلاح محمول أكثر لهذا ، قادمًا على الفور!
شكرًا لك على التحول السريع في هذا الأمر والعديد من القضايا الأخرى. تم إصدار Python 3.8.0 final. هل يمكننا الحصول على إصدار Werkzeug 0.15.5؟
هل لدى أي شخص حل بديل لهذه المشكلة؟
تم إصلاحه في إصدار لاحق. قم بترقية نسختك من Werkzeug.
التعليق الأكثر فائدة
تم إصلاحه في إصدار لاحق. قم بترقية نسختك من Werkzeug.