ModuleNotFoundError: No module named 'flask'
ローカルサーバーでFlaskを立ち上げようとしたら、
こんなエラーがでてきた!
僕自身、上記のエラーの解決方法が一向に分からず、永遠悩んだ経験があるので、
この記事に対処法を書いておきます。
この記事は仮想環境のPoetryを使っている方に向けて書いています。
- No module named ‘flask’のエラー対処法
- .venvの削除
- Poetryの再インストール
環境
OS | Mac 10.15.4 |
Python | python 3.9 |
仮想環境 | Poetry |
Homebrew | 8.0.19 Homebrew |
ModuleNotFoundError: No module named ‘flask’のエラー
結論から言うと、とても初歩的なミスで、Poetryの再インストールをすれば解決できます。
こんなことに数日間費やしたと思うと、なんとも悲壮感でいっぱいになりました・・・
まずエラーメッセージは以下です。
poetry run python __init__.py
Traceback (most recent call last):
File "__init__.py", line 1, in <module>
from flask import Flask, request, url_for, render_template
ModuleNotFoundError: No module named 'flask'
では、さっそく解決していきましょう。
フォルダの中身
こちらが僕の使っているフォルダです。
(Herokuでデプロイしたときのファイルも含まれていますが、気にしないでください。)
ステップ1:.venvの削除
はじめに、このフォルダの.venvを削除します。赤丸のフォルダを削除しましょう。
通常の表示だと見えないので、Macをお使いの場合は、command + shift + 「.」を押すと、表示されるようになります。
(消したいときは、また同じコマンドを押してください)
↓Windowsの非表示ファイルの表示方法はこちらを参照してください。
隠しファイル(非表示ファイル)をWindows / Macで表示させる方法。覚えておこう!
ステップ2:poetryのインストール
続いて、poetryをインストールしなおします。
poetry install
すると以下のようなメッセージがでてきました。
The currently activated Python version 2.7.16 is not supported by the project (^3.7).
Trying to find and use a compatible version.
Using python3 (3.8.0)
Creating virtualenv heroku in /Users/xxxxxxxxxxx/Desktop/heroku2/.venv
Installing dependencies from lock file
Package operations: 16 installs, 0 updates, 0 removals
- Installing markupsafe (1.1.1)
- Installing pyparsing (2.4.7)
- Installing six (1.14.0)
- Installing attrs (19.3.0)
- Installing click (7.1.2)
- Installing itsdangerous (1.1.0)
- Installing jinja2 (2.11.2)
- Installing more-itertools (8.2.0)
- Installing packaging (20.3)
- Installing pluggy (0.13.1)
- Installing py (1.8.1)
- Installing wcwidth (0.1.9)
- Installing werkzeug (1.0.1)
- Installing flask (1.1.2)
- Installing gunicorn (20.0.4)
- Installing pytest (5.4.2)
これで再インストール完了。
念のため、Flaskを確認したい場合は、こちら。
ls -la .venv/bin/flask
5 28 21:14 .venv/bin/flask
コマンドを打つと最後に日付とともに、Flaskが入ってることが確認できました。
ステップ3:再トライ
僕の場合は、ファイル名が__init__.pyです。
poetry runを実行します。
poetry run python __init__.py
結果や如何に・・・
* Serving Flask app "__init__" (lazy loading)
* 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
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
おお!無事に起動ができました!
まとめ
ModuleNotFoundError: No module named 'flask'
とにかく、上記のエラーが出た場合は、.venvを一度潰してやり直しましょう!
さすれば、道は開ける、場合もあります!
コメント