凄く時間を無駄にしたので書いておきます。
PyCharm Professional(2021.2)でFlaskをデバッグ実行(右上の虫マークで実行)すると、以下のエラーがでます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
Traceback (most recent call last): File "C:\Users\Users\AppData\Local\JetBrains\Toolbox\apps\PyCharm-P\ch-1\212.4746.96\plugins\python\helpers\pydev\pydevd.py", line 1483, in _exec pydev_imports.execfile(file, globals, locals) # execute the script File "C:\Users\Users\AppData\Local\JetBrains\Toolbox\apps\PyCharm-P\ch-1\212.4746.96\plugins\python\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile exec(compile(contents+"\n", file, 'exec'), glob, loc) File "C:/project_root_path/app.py", line 20, in <module> app = Flask(__name__) File "C:\project_root_path\venv\lib\site-packages\flask\app.py", line 423, in __init__ instance_path = self.auto_find_instance_path() File "C:\project_root_path\venv\lib\site-packages\flask\app.py", line 725, in auto_find_instance_path prefix, package_path = find_package(self.import_name) File "C:\project_root_path\venv\lib\site-packages\flask\helpers.py", line 917, in find_package package_path = _find_package_path(root_mod_name) File "C:\project_root_path\venv\lib\site-packages\flask\helpers.py", line 869, in _find_package_path return os.path.dirname(next(iter(spec.submodule_search_locations))) TypeError: 'NoneType' object is not iterable python-BaseException |
JetBrainsのWebページ(https://youtrack.jetbrains.com/issue/PY-49984)を見ると、同様の書き込みがあり、どうやらバグのようです。
書き込みによると、PyCharm CE(Community Edition)でも出ているようなので、多分全部に共通したバグなんだと思います。
その書き込みに、以下に書き換えると実行できるというものがあり、実際にやってみると確かに実行できました。
1 |
app = Flask(__name__, instance_path="/{project_folder_abs_path}/instance") |
しかしながら、このコード書き換えは実際の動作には関係無いので行うべきではないと思います。
そのため、バグが解決するまでの間、PyCharmを前のバージョン(2021.1)に戻して使った方が良いです。