Werkzeug: Die Änderung der ast.Module-Signatur in Python 3.8.0a3 verursacht TypeError

Erstellt am 19. Mai 2019  ·  7Kommentare  ·  Quelle: pallets/werkzeug

Mit Python 3.8.0a3 und Werkzeug 0.15.4 verursacht das Kompilieren der Regelersteller TypeError: required field "type_ignores" missing from Module . Es hört sich so an, als hätte ast.Module ein neues erforderliches Argument.

Ich denke, dies ist das gleiche Problem wie 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
bug

Hilfreichster Kommentar

Es wurde in einer nachfolgenden Version behoben. Aktualisieren Sie Ihre Version von Werkzeug.

Alle 7 Kommentare

Dies muss CPython als undokumentierte und abwärts inkompatible API-Änderung in der Standardbibliothek gemeldet werden.

@asottile Was

Es sieht so aus, als ob dies in CPython https://bugs.python.org/issue35894 gemeldet wurde und die Lösung lautete, dass Downstream-Code ein if sys.version_info >= (3, 8) hinzufügen sollte. : ungerührt:

😡 Was für eine verrückte Lösung - ich werde eine tragbarere Lösung dafür finden, sobald es soweit ist!

Vielen Dank für die schnelle Abwicklung dieses und vieler anderer Probleme. Python 3.8.0 final wurde veröffentlicht. Können wir ein Werkzeug 0.15.5 Release bekommen?

Hat jemand eine Problemumgehung für dieses Problem?

Es wurde in einer nachfolgenden Version behoben. Aktualisieren Sie Ihre Version von Werkzeug.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

caiz picture caiz  ·  3Kommentare

d42 picture d42  ·  6Kommentare

ngaya-ll picture ngaya-ll  ·  8Kommentare

androiddrew picture androiddrew  ·  14Kommentare

davidism picture davidism  ·  9Kommentare