Python日記

【エラー対処法】ModuleNotFoundError: No module named 'flask'を解決|Flask(Python)+Poetry

2020年6月28日

Flask ModuleNotFoundError 接続エラー解消の巻
ModuleNotFoundError: No module named 'flask'
お悩みさん

ローカルサーバーでFlaskを立ち上げようとしたら、

こんなエラーがでてきた!

僕自身、上記のエラーの解決方法が一向に分からず、永遠悩んだ経験があるので、

この記事に対処法を書いておきます。

この記事は仮想環境のPoetryを使っている方に向けて書いています。

この記事で学べること

  1. No module named 'flask'のエラー対処法
  2. .venvの削除
  3. Poetryの再インストール

環境

OSMac 10.15.4
Pythonpython 3.9
仮想環境Poetry
Homebrew8.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'

では、さっそく解決していきましょう。

フォルダの中身

こちらが僕の使っているフォルダです。

フォルダ .venv

(Herokuでデプロイしたときのファイルも含まれていますが、気にしないでください。)

ステップ1:.venvの削除

はじめに、このフォルダの.venvを削除します。赤丸のフォルダを削除しましょう。

フォルダ .venv

通常の表示だと見えないので、Macをお使いの場合は、command + shift + 「.」を押すと、表示されるようになります。
(消したいときは、また同じコマンドを押してください)

Windowsの非表示ファイルの表示方法はこちらを参照してね

ステップ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)
解決さん

おお!無事に起動ができました!

まとめ

この記事で学べること

  1. No module named 'flask'のエラー対処法
  2. .venvの削除
  3. Poetryの再インストール

ModuleNotFoundError: No module named 'flask'

とにかく、上記のエラーが出た場合は、.venvを一度潰してやり直しましょう!

さすれば、道は開ける、場合もあります!

-Python日記
-,