Flaskがimportできない原因10選|ModuleNotFoundErrorの解決法【VSCode対応】
Flaskをチュートリアル通りにインストールして、さあ動かそう!……と思ったら、
「ModuleNotFoundError: No module named ‘flask’」と出て止まってしまった。
この経験、Flaskを始めた人のほとんどが一度は通る道です。
しかもやっかいなのが、「ちゃんとpipでインストールしたのにimportできない」というパターン。
VSCodeの設定や仮想環境の違い、Pythonのバージョンのズレなど、一見同じように見えるエラーでも原因が10通り以上あります。
この記事では、そんな「Flaskがimportできない」問題を体系的に整理し、
確認手順 → 原因10選 → 最後の手段の順に、どんな環境でも再現できる形で解説していきます。
PythonやFlaskが初めての方でも、手を動かしながらトラブルを解消できるように、コマンド例・画面操作・注意点をすべて丁寧に説明します。
まず確認すべきこと(最初にやる3つのチェック)
Flaskがimportできないとき、焦って再インストールを繰り返しても根本的な解決にはつながりません。
まずは「本当にFlaskがインストールされていて、Pythonが正しい環境を見ているか」を3つのステップで確認しましょう。
これをやるだけで、約半分のケースは原因が判明します。
最初のステップは、以下のコマンドで環境の状態を確認することです。
python -m pip show Flask
このコマンドで、もし「WARNING: Package(s) not found」と出た場合は、Flask自体がまだインストールされていません。
インストール済みであれば、バージョンやインストール先(Location
)が表示されるはずです。
次に、Pythonがどの実行環境を見ているかを確認しましょう。
python -c "import flask, sys; print(flask.__version__, sys.executable)"
このコマンドでは、現在のPython実行ファイルの場所(sys.executable
)と、Flaskのバージョンを同時に確認できます。
もしここでエラーが出る場合は、Flaskが別の環境に入っている可能性が高いです。
最後に、pipやsetuptoolsが古いままだと依存関係が壊れていることがあるため、以下で最新化しておきます。
python -m pip install -U pip setuptools wheel
ここまででエラーが出なければ、環境自体は整っているはずです。
それでもVSCodeで「Import ‘flask’ could not be resolved」と表示される場合、次章で扱う「インタープリタ設定」や「仮想環境の有効化」に原因がある可能性が高いです。
Flaskがimportできない原因10選とその対処法
Flaskのimportエラーは、一見するとどれも同じ「ModuleNotFoundError」に見えます。
しかし実際には、環境のズレ・ファイル名の衝突・依存パッケージの不整合など、発生源はさまざまです。
ここでは、よくある10の原因をケース別に整理して紹介します。
それぞれの項目では、再現例と解決コマンドも紹介しますので、順番に試していくことで確実に原因を特定できます。
Flaskがインストールされていない
一番単純ですが、最も多いパターンです。
Pythonを複数入れている環境では、「別のPython環境に入っている」こともよくあります。
python -m pip install Flask
このとき注意すべきは、必ずpython -m pip
形式で実行することです。
単にpip install Flask
と打つと、別のPython環境に入ってしまうことがあります。
仮想環境が有効化されていない
VSCodeで作成した仮想環境(.venv
など)が有効になっていないと、Flaskをインストールしても認識されません。
仮想環境を作成したフォルダで以下を実行してください(Windowsの場合)。
.venv\Scripts\activate
コマンド実行後、ターミナルの左側に「(.venv)」と表示されていればOKです。
VSCodeで別のPythonインタープリタを選択している
VSCodeは複数のPython環境を自動検出しますが、正しい仮想環境を選択していないとimportエラーになります。
確認手順は以下の通りです。
Ctrl + Shift + P
(MacはCmd + Shift + P
)を押す- 「Python: Select Interpreter」と入力して選択
.venv
と表示されたインタープリタを選ぶ
これでVSCodeが正しい仮想環境を参照するようになります。
ファイル名やフォルダ名が flask.py
になっている
初心者がよくやってしまうミスです。
自分の作ったファイルが flask.py
という名前だと、Pythonが本物のFlaskライブラリではなく、自分のファイルをimportしようとしてしまいます。
ファイル名を app.py
などに変更し、同じディレクトリ内の __pycache__
フォルダを削除してください。
rm -r __pycache__
これでPythonのキャッシュもクリアされます。
pipとpythonのバージョンがズレている
複数バージョンのPythonをインストールしている場合、pip
が古いバージョンのPythonを参照していることがあります。
次のコマンドで、pip
がどのPythonに対応しているか確認してみましょう。
where pip # Windows which pip # Mac / Linux
ズレている場合は、python -m pip install Flask
で再インストールすると安全です。
Flaskのクラス名で大文字・小文字を間違えている
こちらも初学者が見落としがちなポイントです。
Flaskではクラス名が大文字のFで始まるため、以下のように正しく書く必要があります。
from flask import Flask app = Flask(__name__)
もし from flask import flask
と書いている場合、正しいクラスがimportされずエラーになります。
依存パッケージの破損や不整合
Flaskは Werkzeug
, Jinja2
, itsdangerous
, Click
など複数のパッケージに依存しています。
これらのどれかが壊れていると、Flask自体のimportが失敗することがあります。
最新版に更新するには、次のコマンドを実行してください。
pip install -U "Flask[async]"
これにより依存関係も一括でアップデートされます。
システムに複数のPythonが同居している
WindowsやAnaconda環境では、Python 3.9・3.11など複数のバージョンが共存していることがよくあります。
その結果、pipが別の環境にFlaskを入れてしまい、importできないという現象が起きます。
現在使っているPythonを特定するには以下のコマンドを使います。
python -c "import sys; print(sys.executable)"
ここに表示されるパスと、Flaskが入っているパス(pip show Flask
のLocation欄)が一致していれば問題ありません。
本番環境(ApacheやWSGI)でPATHが設定されていない
Flaskを本番環境で動かすとき、Apacheやmod_wsgiなどのサーバー側で仮想環境を正しく紐付けないと、import flask
に失敗します。
wsgi.py
内で以下のように明示的にvenvパスを追加することで解決できます。
import sys sys.path.insert(0, '/var/www/yourapp/.venv/lib/python3.11/site-packages')
プロジェクト独自のパス設定が必要
特定の構成では、Flaskをサブディレクトリに分けて配置している場合があります。
その際、Pythonがそのディレクトリを認識していないとimportできません。
一時的にモジュールパスを追加するには以下のようにします。
import sys sys.path.append('./src')
ただし、この方法はあくまで応急処置です。
正しい構成としては、__init__.py
を用意してパッケージ化するのがおすすめです。
Flaskの動作確認テンプレート(Hello, Flask!)
ここまでの手順でFlaskを正しくインストールし、環境も整ったはずです。
次に行うのは、「本当にFlaskが動くかどうか」を最小構成で確認するステップです。
複雑なコードは必要ありません。
まずは “Hello, Flask!”と表示されるだけの超シンプルなアプリ を作って動かしてみましょう。
最小構成のFlaskアプリを作成する
以下のように、app.py
というファイルを作成します。
この中に次のコードをコピペして保存してください。
from flask import Flask # Flaskアプリケーションのインスタンスを作成 app = Flask(__name__) # ルートURL('/')にアクセスしたときに実行される関数 @app.route('/') def hello(): return "Hello, Flask!" # アプリを起動(デバッグモード有効) if __name__ == "__main__": app.run(debug=True)
このコードは、Flaskの最も基本的な構造です。
Flask(__name__)
でアプリのインスタンスを作り、@app.route('/')
でルートURLを設定しています。
ブラウザで http://127.0.0.1:5000/
にアクセスすると、「Hello, Flask!」が表示されれば成功です。
うまく動かないときのチェックポイント
アプリを起動してもブラウザで何も表示されない、またはターミナルにエラーが出る場合は、次の点を確認してみてください。
- ファイル名が
flask.py
ではなくapp.py
になっているか - すでに別のプロセスがポート5000を使用していないか
- 仮想環境が有効化されているか(ターミナル先頭に
(.venv)
と表示されているか) - FlaskをインストールしたPythonと、実行しているPythonが同じか
これらを一つずつ確認すれば、ほとんどのケースで正常に起動できるはずです。
動作確認ができたら次のステップへ
「Hello, Flask!」が表示されたら、あなたの開発環境は正しく整っています。
これでようやくFlaskの第一関門を突破しました。
次は、それでも動かない場合の最終手段として、環境リセットや再構築のチェックリストを紹介していきます。
それでも直らないときの最終チェックリスト
ここまでの手順をすべて試しても、まだ「Flaskがimportできない」「Import ‘flask’ could not be resolved」と表示される場合。
そんなときは、環境そのものが壊れているか、VSCodeが古い設定を参照している可能性があります。
焦らず、以下のチェックリストを順番に実行してください。
これらは「環境をまっさらに戻す」ための最終ステップです。少し時間はかかりますが、確実に動く状態を取り戻せます。
仮想環境を削除して再作成する
仮想環境が壊れていると、どんなに正しい設定をしてもFlaskが読み込まれません。
最も手っ取り早い方法は、仮想環境を一度削除して作り直すことです。
まず、プロジェクトフォルダ内にある .venv
(または env
)ディレクトリを削除します。
その後、以下のコマンドで新しい仮想環境を作成します。
python -m venv .venv
続いて、仮想環境を有効化してFlaskを再インストールしましょう。
.venv\Scripts\activate python -m pip install Flask
これで、ほぼすべての依存関係がリセットされます。
pipキャッシュをクリアする
インストール済みのパッケージキャッシュが壊れていることもあります。
pipは高速化のためにダウンロード済みファイルをキャッシュしていますが、古いキャッシュが悪影響を及ぼすケースがあります。
以下のコマンドでキャッシュを削除しましょう。
pip cache purge
その後、再度Flaskをインストールします。
python -m pip install Flask
キャッシュ削除後はクリーンな状態から再構築されるため、「過去に入れたバージョンが悪さしていた」パターンもこれで解消します。
VSCodeのPython設定をリセットする
VSCodeが古いインタープリタや壊れた拡張機能を参照していると、「Flaskが見つからない」と誤検知されることがあります。
次の手順で設定をリセットしてみましょう。
- VSCode左下の歯車アイコンから「設定」を開く
- 検索バーに「interpreter」と入力
- 「Python: Default Interpreter Path」を空欄に戻す
- VSCodeを再起動
また、拡張機能タブから「Python」と「Pylance」を一度無効化 → 再有効化してみるのも効果的です。
これで再スキャンが走り、環境を正しく再認識してくれます。
Python自体を再インストールする
それでも解決しない場合は、Python自体のインストールに問題がある可能性があります。
特にWindowsで古いバージョンを上書きインストールしている場合、パス設定やレジストリが混乱しているケースが多いです。
次の手順でクリーンインストールを行いましょう。
- 公式サイト(https://www.python.org/downloads/)から最新版をダウンロード
- 「Add Python to PATH」にチェックを入れてインストール
- その後、再度Flaskをインストール
python -m pip install Flask
インストール直後は python --version
と pip --version
が一致しているかも確認してください。
システムレベルのパスを確認する
最後に、Flaskをどのパスから読み込んでいるかを明確にしましょう。
以下のコマンドを実行します。
python -c "import flask, sys; print(flask.__file__); print(sys.executable)"
これで「Flaskライブラリの場所」と「実行中のPythonの場所」が同時に表示されます。
この2つが異なるパスを指している場合、環境の整合性が取れていません。
正しいPythonで再インストールすれば解決します。
まとめ:焦らずリセットすれば必ず直る
Flaskのimportエラーは、実は環境のどこかがズレているだけのことがほとんどです。
焦って何度も同じpipコマンドを打つより、「環境を整える→再インストール→起動確認」という順番を守ることが何より大切です。
もしここまでやっても動かない場合は、再現コードとエラーメッセージを1箇所にまとめ、公式の Flask Discussions で質問してみるのもおすすめです。
世界中のFlaskユーザーが同じようなトラブルを経験しており、的確なアドバイスをもらえるはずです。
まとめ|これからFlaskを学ぶあなたへ
ここまで、「Flaskがimportできない」問題をあらゆる角度から解説してきました。
最初はどこから手をつけていいか分からなかった方も、今なら自分の環境がどう動いているのかをだいぶ理解できたはずです。
Flaskはとてもシンプルなフレームワークですが、そのぶんPythonの基礎知識や環境管理の理解が欠かせません。
今回の記事を通して、「pip」「venv」「インタープリタ」などの概念が少しでもクリアになっていれば、それは確実な前進です。
Flaskを使えるようになると、「小さなWebアプリを自分で作って公開する」という世界が一気に近づきます。
ちょっとしたアイデアを形にできる力は、Pythonを学ぶ大きな魅力のひとつです。
これから先は、トラブルが起きてもこの記事を思い出してください。
“環境・ファイル名・依存関係・パス”を見直すだけで、必ず道は開けます。
次は、あなた自身のアプリを作る番です。
「Hello, Flask!」から「My First Web App!」へ。
その一歩を、今日から始めましょう。
よくある質問(Flask importエラーFAQ)
Flaskをインストールしてもimportできないという悩みは、Python学習者の中でも特に多いトピックです。
ここでは、実際によく検索される質問をもとに、3つの代表的な疑問とその解決法を紹介します。
記事本文を読んだあとで再確認する形でも、きっと役立つはずです。
Q1. 「ModuleNotFoundError: No module named ‘flask’」が出るのはなぜ?
このエラーは、PythonがFlaskを見つけられていない状態を意味します。
主な原因は次の2つです。
- Flaskがインストールされていない
- 別のPython環境にインストールされている
まずは以下のコマンドで確認してみましょう。
python -m pip show Flask
結果に「Name: Flask」と表示されればOKです。
表示されない場合は、以下のように再インストールします。
python -m pip install Flask
ポイントは、python -m pip
形式を使うこと。
これにより、今使っているPython環境に確実にFlaskが入ります。
Q2. VSCodeで「Import ‘flask’ could not be resolved」と表示される
これはVSCodeのPylance拡張機能が、Flaskをインストールした環境と異なるPythonを参照しているときに出る警告です。
Flaskが存在しても、VSCodeが正しい環境を見ていないためにエラーが出ます。
次の手順で解決できます。
Ctrl + Shift + P
(MacはCmd + Shift + P
)を押す- 「Python: Select Interpreter」と入力して選択
.venv
など仮想環境のインタープリタを選ぶ
再度 app.py
を開くと、エラーが消えているはずです。
もし直らない場合は、VSCodeを再起動してからもう一度確認してみましょう。
Q3. Flaskをインストールしたのに「flaskコマンドが見つからない」と出る
これは、環境パスにFlaskの実行ファイルが含まれていないときに起こります。
多くの場合、仮想環境が有効化されていないのが原因です。
まずは仮想環境を有効化し、再びFlaskをインストールしてください。
これで flask
コマンドが認識されるようになります。
もしそれでもエラーが出る場合は、python -m flask --app app run
という形でも起動可能です。