はじめに
FlaskはPythonでWebアプリケーションを開発するための軽量で柔軟なフレームワークです。今回は、Flaskを導入するための事前準備からアプリケーションの初期セットアップ完了までが範囲となります。WindowsとMacの両方でFlask開発環境を構築する方法を詳細に解説します。
環境構築の前に
必要なもの
- Python 3.7以上(Windows/Mac両対応)
- テキストエディタ(VSCode, Sublime Text, PyCharmなど)
- ターミナル(Windows: PowerShellまたはコマンドプロンプト、Mac: ターミナル)
推奨環境
- Windows 10/11 または macOS 10.15以上
- Python 3.8以上
Pythonの確認とインストール
WindowsでのPython確認方法
PowerShellを開く
- Windowsキー + R → 「powershell」と入力 → Enter
Pythonのバージョンを確認
バージョン確認コマンドは以下のいづれかです。python2系がインストールされている場合はpython3コマンドを実施してください。
python --version
または
python3 --version
Pythonがインストールされていない場合
以下の公式サイトからインストーラーをダウンロードしてPythonをインストールします。
- Python公式サイトからインストーラーをダウンロード
- インストール時に「Add Python to PATH」に必ずチェックを入れる
MacでのPython確認方法
ターミナルを開く
- Command + Space → 「terminal」と入力 → Enter
Pythonのバージョンを確認
macOSは標準でpython2系がインストールされている場合は多いです。python3コマンドを実施してください。
python3 --version
Pythonがインストールされていない場合
パッケージ管理システム「Homebrew」を使用してPythonをインストールする方法、もしくは、公式サイトからインストーラーをダウンロードしてインストールする方法になります。
Homebrewを使用(推奨)場合は以下のコマンドより取得します。
bash /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" brew install python
またはWindowsの手順同様にPython公式サイトの公式インストーラーからインストールします。
仮想環境の設定
仮想環境は、プロジェクトごとに独立したPython環境を作成するための重要な機能です。これにより、異なるプロジェクトで異なるバージョンのパッケージを使用できるようになります。
仮想環境の重要性
- プロジェクト間の依存関係の衝突を防ぐ
- クリーンな開発環境の維持
- 本番環境との一致性を確保
Windowsでの仮想環境設定
プロジェクトディレクトリの作成
Powershellを利用して以下のコマンドを実行してプロジェクトディレクトリを作成します。
# デスクトップにプロジェクトフォルダを作成
cd Desktop
mkdir myflaskapp
cd myflaskapp
仮想環境の作成(仮想環境名venvは任意の名前)
仮想環境を作成しておくことで複数のバージョン管理が可能となります。コマンドはプロジェクトディレクトリで実施してください。
python -m venv venv
または
python3 -m venv venv
仮想環境の有効化
作成した仮想環境を有効にします。
.\venv\Scripts\activate
成功すると、プロンプトの先頭に (venv) と表示されます。
Macでの仮想環境設定
macOSではターミナルを利用してディレクトリを作成します。手順はWindowsと同様です。
プロジェクトディレクトリの作成
# デスクトップにプロジェクトフォルダを作成
cd ~/Desktop
mkdir myflaskapp
cd myflaskapp
仮想環境の作成(仮想環境名venvは任意の名前)
python3 -m venv venv
仮想環境の有効化
source venv/bin/activate
成功すると、プロンプトの先頭に (venv) と表示されます。
仮想環境の無効化と再アクティベート
無効化(Windows/Mac共通)
deactivate
再アクティベートのコマンドはそれぞれ以下になります。
Windowsでは .\venv\Scripts\activate です。
Macでは source venv/bin/activate です。
Flaskのインストール
仮想環境を有効にした状態で、Flaskをインストールします。
pipのアップグレード(推奨)
まず、pipを最新バージョンにアップグレードします。
# Windows/Mac共通
python -m pip install --upgrade pip
Flaskのインストール
# Windows/Mac共通
pip install flask
インストール確認
# インストールされたパッケージの確認
pip list
Flaskがリストに表示されていれば成功です。
※以下抜粋
Flask
Werkzeug
Jinja2
click
itsdangerous
blinker
プロジェクト構成の作成
適切なプロジェクト構成は、後の開発をスムーズにします。以下の構造を推奨します。
myflaskapp/
│
├── venv/ # 仮想環境(自動生成)
├── app.py # メインアプリケーションファイル
├── requirements.txt # 依存パッケージリスト
└── static/ # 静的ファイル(CSS, JS, 画像)
├── css/
├── js/
└── images/
ディレクトリ作成
Windows (PowerShell):
mkdir static, static\css, static\js, static\images
Mac (Terminal):
mkdir -p static/{css,js,images}
最初の「Hello World」アプリケーション
それでは、最初のFlaskアプリケーションを作成しましょう。
app.pyの作成
プロジェクトルートディレクトリに app.py ファイルを作成し、以下のコードを記述します。
# Flaskモジュールのインポート
from flask import Flask
# Flaskアプリケーションのインスタンスを作成
app = Flask(__name__)
# ルートURL('/')にアクセスしたときの処理を定義
@app.route('/')
def hello_world():
return 'Hello, World!'
# アプリケーションの実行
if __name__ == '__main__':
app.run(debug=True)
コードの詳細解説
- インポート文
from flask import Flask
Flaskクラスをインポートします。これがすべてのFlaskアプリケーションの基礎となります。
- アプリケーションインスタンスの作成
app = Flask(__name__)
__name__は現在のPythonモジュールの名前です。
Flaskはこの情報を使ってテンプレートや静的ファイルのパスを見つけます。
- ルートの定義
@app.route('/')
デコレータ(@で始まる)を使用してURLルートを関数に関連付けます。'/'はWebサイトのルートURL(例: http://localhost:5000/)を表します。
- ビュー関数
def hello_world():
return 'Hello, World!'
この関数は指定されたルートにアクセスがあったときに実行されます。
戻り値がブラウザに表示されます。
- アプリケーションの実行
if __name__ == '__main__':
app.run(debug=True)
スクリプトが直接実行されたときのみアプリケーションを起動します。debug=Trueは開発中に便利なデバッグ情報を有効にします。
アプリケーションの実行
実行方法
仮想環境が有効な状態で、以下のコマンドを実行します。
# Windows/Mac共通
python app.py
または
# Macでpython3を使用する場合
python3 app.py
実行結果の確認
ターミナルに以下のようなメッセージが表示されます。
* Serving Flask app 'app'
* Debug mode: on
* Running on http://127.0.0.1:5000
Press CTRL+C to quit
ブラウザでの確認
- Webブラウザを開く
- アドレスバーに
http://127.0.0.1:5000またはhttp://localhost:5000と入力 - 「Hello, World!」と表示されれば成功!
開発のベストプラクティス
1. 環境変数の使用
敏感な情報(シークレットキーなど)は環境変数として管理しましょう。
Windows (PowerShell):
$env:FLASK_APP = "app.py"
$env:FLASK_ENV = "development"
Mac (Terminal):
export FLASK_APP=app.py
export FLASK_ENV=development
2. 依存関係の管理
プロジェクトの依存関係をファイルに保存します。
# 現在の環境のパッケージを保存
pip freeze > requirements.txt
requirements.txtの例:
Flask==2.3.3
Werkzeug==2.3.7
Jinja2==3.1.2
他の環境でインストールする場合です。
pip install -r requirements.txt
3. .gitignoreの作成
Gitを使用する場合は、仮想環境をリポジトリに含めないようにします。
.gitignoreファイル:
venv/
__pycache__/
*.pyc
.env
トラブルシューティング
よくある問題と解決方法
「コマンドが見つかりません」エラー
Pythonやpipを実行した際に「コマンドが見つかりません(Command not found)」というエラーが表示される場合は、環境設定に問題がある可能性があります。以下の点を確認してください。
仮想環境の有効化確認: プロジェクト専用の仮想環境を使用している場合、その環境が正しく有効化されているかを確認してください。仮想環境に入っていないと、その環境内にインストールされたライブラリやPythonインタプリタにパスが通りません。
Pythonとpipのパス確認: システム全体、あるいは仮想環境内において、Pythonおよびパッケージ管理ツールであるpipへのパス(PATH)が正しく設定されているかを確認してください。インストール直後などに、実行ファイルの場所をシステムが認識できていない場合があります。
「Address already in use」エラー
サーバー起動時に「Address already in use」(アドレスは既に使用されています)というエラーが出る場合、指定したポート番号(デフォルトでは多くの場合5000や8000など)を、すでに他のプロセスが使用しています。
別のポートでの実行: 最も簡単な解決策は、アプリケーションを実行するポート番号を変更することです。例えばFlaskの場合、以下のようにport引数を指定することで、別のポート(例:5001)でサーバーを起動できます。
# 別のポートで実行
app.run(debug=True, port=5001)
変更が反映されない
プログラムのコードを変更したにもかかわらず、実行中のサーバーにその変更が反映されない場合は、以下の方法を試してください。
デバッグモードの確認: 後述する「デバッグモード」が有効になっているか確認してください。デバッグモードが無効だと、コードを変更するたびに手動でサーバーを操作する必要があります。
サーバーを再起動: デバッグモードを使用していない、あるいは自動リロードが機能しない場合は、一度実行中のサーバーを停止し、再度起動することで最新のコードを読み込ませてください。
デバッグモードの利点
開発中に「デバッグモード」を有効にすることは、効率的な開発において必須機能と言えます。主な利点は以下の通りです。
自動リロード: コードに変更を加えて保存すると、サーバーがそれを検知し、自動的に再起動して変更を反映します。手動でサーバーを立ち上げ直す手間が省けます。
デバッガの提供: 万が一アプリケーション内でエラーが発生した場合、ブラウザ上に詳細なエラー情報(トレースバック)が表示されます。また、ブラウザ上でコードを変数を確認するなど、インタラクティブなデバッグが可能になる場合もあります。
まとめ
この記事では、WindowsとMacの両方でFlask開発環境を構築する方法を詳細に説明しました。仮想環境の設定から最初の「Hello World」アプリケーションの作成まで、段階的に進めることで、確実な環境構築ができるようになりました。
開発環境の構築はプログラミングの第一歩であり、適切に設定された環境はその後の開発効率に大きく影響します。この基礎をしっかりと理解し、Flaskを使ったWeb開発の世界への第一歩を踏み出してください。