こんにちは、かつコーチです。
前回の記事でFlaskがどんなフレームワークか紹介しました。
今回は実際に手を動かして、環境構築から最小構成のアプリを動かすところまでを一気に進めます。
コピペで動かせる完全なコードを用意したので、ぜひ手元で試してみてください。
Flask環境構築の全体像
用意するもの
Flaskを動かすために必要なのは、次の3つだけです。
- Python(3.9以上を推奨。この記事では3.11で確認しています)
- pip(Pythonのパッケージ管理ツール。Python本体に同梱されています)
- 仮想環境(プロジェクトごとにライブラリを分離する仕組み)
まずはターミナルで、Pythonがインストールされているか確認しましょう。
python3 --version
Python 3.11.x のようにバージョンが表示されればOKです。
なぜ仮想環境を使うのか
仮想環境(venv)とは、プロジェクトごとに専用のPython実行環境を作る仕組みです。
仮想環境を使わないと、複数のプロジェクトで異なるバージョンのFlaskを使いたいときにライブラリが衝突してしまいます。
「このプロジェクトだけで使うライブラリ」を分離できるので、Pythonでの開発では仮想環境の利用がほぼ必須と考えてください。
手順1〜4:最小構成のアプリを動かす
手順1: プロジェクトフォルダと仮想環境の作成
mkdir flask-first-app
cd flask-first-app
python3 -m venv venv
venvというフォルダが作成され、その中に専用のPython環境ができます。
手順2: 仮想環境の有効化
Macの場合は次のコマンドで有効化します。
source venv/bin/activate
Windowsの場合はこちらです。
venv\Scripts\activate
ターミナルの先頭に(venv)と表示されれば、仮想環境が有効になっている証拠です。
手順3: Flaskのインストール
pip install flask
インストールが終わったら、バージョンを確認しておきましょう。
python3 -c "import flask; print(flask.__version__)"
本記事執筆時点でFlask 3系(3.0以降)が表示されればOKです。
手順4: 最小構成のコードを書いて実行する
app.pyというファイルを作成し、以下のコードを書きます。
from flask import Flask
app = Flask(__name__)
@app.route("/")
def index():
return "Hello, Flask!"
if __name__ == "__main__":
app.run(debug=True)
保存したら、ターミナルで実行します。
python3 app.py
http://127.0.0.1:5000 にブラウザでアクセスすると、「Hello, Flask!」と表示されます。
つまずきやすい設定・注意点
debug=Trueの役割を理解する
app.run(debug=True)のdebug=Trueは、デバッグモード(コードを変更すると自動でサーバーを再起動し、エラー内容を詳しく画面に表示してくれる開発用の設定)を有効にします。
開発中は必ずオンにしておくと、コード修正のたびにサーバーを手動で再起動する手間が省けます。
ただし、本番環境ではセキュリティ上の理由から必ずdebug=Falseにする、または環境変数で切り替える必要があります。
コマンドはflask runでも実行できる
python3 app.pyの代わりに、Flask標準の起動コマンドを使う方法もあります。
export FLASK_APP=app.py
export FLASK_DEBUG=1
flask run
どちらの方法でも動作は同じですが、flask runコマンドの方が、後で紹介するBlueprintなど複数ファイル構成になったときに扱いやすくなります。
まずはpython3 app.pyで慣れて、余裕が出てきたらflask runに切り替えるのがおすすめです。
よくあるつまずきポイント・エラー対処
ModuleNotFoundError: No module named ‘flask’
❌ Before:仮想環境を有効化せずにpip install flaskを実行してしまい、python3 app.pyを実行するとModuleNotFoundError: No module named 'flask'が出る
✅ After:source venv/bin/activateで仮想環境を有効化してからpip install flaskを実行し、(venv)の表示があることを確認してからpython3 app.pyを実行する
私も最初の頃、ターミナルを開き直すたびに仮想環境の有効化を忘れて、このエラーに何度も遭遇しました。
新しいターミナルタブを開いたら、まず(venv)の表示があるか確認する癖をつけると防げます。
Address already in useでサーバーが起動しない
❌ Before:一度python3 app.pyを実行した後、Ctrl+Cで止めずにターミナルを閉じてしまい、再度起動しようとするとOSError: [Errno 48] Address already in useが出る
✅ After:ポートを使っているプロセスをlsof -i :5000(Macの場合)で確認して終了させるか、app.run(debug=True, port=5001)のようにポート番号を変更して起動する
このエラーはFlaskに限らず開発サーバー全般で起こるので、原因の切り分け方を覚えておくと今後も役立ちます。
応用・一歩先の使い方
requirements.txtでライブラリを管理する
プロジェクトが育ってくると、インストールしたライブラリを他の環境でも再現できるようにしておく必要があります。
pip freeze > requirements.txt
このコマンドで現在インストール済みのライブラリ一覧をファイルに書き出せます。
別の環境では、次のコマンドで一括インストールできます。
pip install -r requirements.txt
チーム開発や、後の記事で扱うデプロイの際にも必須の作業になるので、この段階で習慣にしておきましょう。
まとめ
この記事のポイント
- Flaskの環境構築は「仮想環境の作成→有効化→pip installでFlaskを導入」の3ステップ
- 最小構成のアプリは10行未満のコードで動かせる
debug=Trueは開発中の必須設定だが、本番環境では無効にする- 仮想環境の有効化忘れが初心者の最頻出エラー
次に読むべき記事
環境構築が終わったら、次は実際のURL設計の基本である「@app.routeでルーティングを設定する基本」に進みましょう。
複数のページを持つアプリの作り方が分かるようになります。
タグ: Flask, 初心者向け, 環境構築