Avec Python 3.8.0a3 et Werkzeug 0.15.4, la compilation des générateurs de règles provoque TypeError: required field "type_ignores" missing from Module
. Il semble que ast.Module
a un nouvel argument obligatoire.
Je pense que c'est le même problème que 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
Cela doit être signalé à CPython comme un changement d'API non documenté et incompatible avec les versions antérieures dans la bibliothèque standard.
@asottile Que
On dirait que cela a été signalé dans CPython https://bugs.python.org/issue35894 et la résolution était que le code en aval devrait ajouter un if sys.version_info >= (3, 8)
. : non amusé:
😡 quelle résolution farfelue - je vais faire une solution plus portable pour cela, à venir!
Merci pour le redressement rapide de ce problème et de nombreux autres. Python 3.8.0 final a été publié. Pouvons-nous obtenir une version Werkzeug 0.15.5?
Quelqu'un at-il une solution de contournement pour ce problème?
Il a été corrigé dans une version ultérieure. Mettez à niveau votre version de Werkzeug.
Commentaire le plus utile
Il a été corrigé dans une version ultérieure. Mettez à niveau votre version de Werkzeug.