2

設計上、Python 3は相対インポートを含むモジュールをスクリプトとして実行できません。そうしようとすると、次のエラーが発生します。

$ python mypackage/run.py
[...traceback...]
SystemError: Parent module '' not loaded, cannot perform relative import

python -m mypackage.run解決策は、より使い慣れた の代わりに でモジュールを呼び出すことですpython mypackage/run.py

Flask では、後者が通常の開発サーバーの実行方法です。ただし、Flask 開発サーバーは、コードをリロードする子プロセスをすぐに生成します (その後、ディスク上でファイルが変更されると、コードをリロードします)。

結果は次のとおりです。

$ python -m mypackage.run
 * Running on http://127.0.0.1:5000/
 * Restarting with reloader
[...traceback...]
SystemError: Parent module '' not loaded, cannot perform relative import

そのため、サーバーは適切に起動しますが、子プロセスはコードを不適切にリロードします。

4

1 に答える 1