ImportError: cannot import name from flask
Flaskモジュールからインポートできない場合に発生するエラー
概要
ImportError: cannot import name 'xxx' from 'flask' は、FlaskまたはFlask拡張機能からモジュールやクラスをインポートできない場合に発生するエラーです。バージョンの不一致、インストールの問題、循環インポートなどが原因です。
エラーメッセージ
ImportError: cannot import name 'escape' from 'flask'
ImportError: cannot import name 'Markup' from 'flask'
ImportError: cannot import name 'json' from 'flask'
原因
- Flask バージョンの変更: Flask 2.3 以降で一部のインポートが変更
- パッケージ未インストール: Flask や拡張がインストールされていない
- 循環インポート: モジュール間の循環参照
- 仮想環境の問題: 仮想環境が正しくアクティブ化されていない
- ファイル名の競合: flask.py という名前のファイルがある
解決策
1. Flask 2.3+ での変更に対応
| |
2. 依存パッケージをインストール
| |
3. Flask 拡張機能のインストール
| |
4. 循環インポートの解決
| |
| |
5. 仮想環境の確認
| |
6. ファイル名の競合を解消
| |
7. 正しいインポート文
| |
8. Python パスの確認
| |
9. 型ヒントのインポート
| |
10. Blueprints でのインポート
| |
Docker での対処
| |
# requirements.txt
flask>=2.3.0
flask-sqlalchemy>=3.0.0
markupsafe>=2.1.0
デバッグのコツ
バージョン確認
| |
インポート可能なものを確認
| |
依存関係の確認
| |
Flask の他のエラー
この記事は役に立ちましたか?