Werkzeug: Perubahan tanda tangan ast.Module di Python 3.8.0a3 menyebabkan TypeError

Dibuat pada 19 Mei 2019  ·  7Komentar  ·  Sumber: pallets/werkzeug

Dengan Python 3.8.0a3 dan Werkzeug 0.15.4, mengompilasi pembuat aturan menghasilkan TypeError: required field "type_ignores" missing from Module . Sepertinya ast.Module memiliki argumen baru yang diperlukan.

Saya pikir ini adalah masalah yang sama dengan 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

Komentar yang paling membantu

Itu diperbaiki dalam rilis berikutnya. Tingkatkan versi Werkzeug Anda.

Semua 7 komentar

Ini perlu dilaporkan ke CPython sebagai perubahan API yang tidak berdokumen dan tidak kompatibel dengan versi sebelumnya di pustaka standar.

@asottile Apa pendapat Anda? Saya tidak yakin kita harus memperbaikinya, Python 3.8 telah menyebabkan kemudian memperbaiki masalah acak cukup lama.

Sepertinya ini dilaporkan di CPython https://bugs.python.org/issue35894 dan resolusinya adalah kode hilir harus menambahkan if sys.version_info >= (3, 8) . : tidak senang:

😡 resolusi yang aneh - Saya akan membuat perbaikan yang lebih portabel untuk ini, segera hadir!

Terima kasih atas penyelesaian cepat tentang masalah ini dan banyak masalah lainnya. Final Python 3.8.0 telah dirilis. Bisakah kita mendapatkan rilis Werkzeug 0.15.5?

Apakah ada yang punya solusi untuk masalah ini?

Itu diperbaiki dalam rilis berikutnya. Tingkatkan versi Werkzeug Anda.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

davidism picture davidism  ·  9Komentar

ngaya-ll picture ngaya-ll  ·  8Komentar

SimonSapin picture SimonSapin  ·  12Komentar

sorenh picture sorenh  ·  4Komentar

mhelmetag picture mhelmetag  ·  8Komentar