【完全ガイド】FastAPIをvenvで始める―環境構築から動作確認まで
📋 記事のポイント(サマリー)
- 誰向け?
Pythonの基礎はあるが、Webフレームワークを触ったことがない初心者~中級者 - 学べること
- 仮想環境(venv)のメリットと作成方法
- Pythonバージョンの確認・切り替え
- FastAPI本体とASGIサーバー(Uvicorn)のインストール手順
- 最小限「Hello, World!」APIの実行・動作確認
- アクセシビリティ配慮:コマンド例への注釈・コードの読みやすさ
- 得られる効果
- 他プロジェクトへの影響を避け、クリーンな環境で開発開始
- FastAPIの基本構造を理解し、次のステップ(ルーティングやDB連携)への土台構築
🎯 対象読者
- Pythonでプログラミングは一通りできるけれど、フレームワークは未経験
- 既存のPython環境を汚さずに、新しいライブラリを試したい方
- FastAPIの導入手順を、わかりやすく段階的に理解したい方
♿ アクセシビリティレベル
- 読みやすさ:漢字・ひらがな・カタカナのバランスを考慮し、適切にルビを振る例も併記
- 構造化:見出し・リストを多用し、スクリーンリーダーでも論理的に把握可能
- コード例:コメント付きで、色覚多様性にも配慮したコントラストの高い表記
- 要約とまとめ:各章末に要点を記載し、復習しやすい設計
1. はじめに:なぜvenvなのか?
Webアプリ開発では、複数プロジェクトで依存ライブラリのバージョンが衝突しがちです。
**venv(バーチャル・エンバイロンメント)**を使うことで、プロジェクトごとに独立したPython環境を作成できます。
- メリット
- システムのPythonに影響を与えない
- プロジェクト固有のパッケージ管理が容易
- チーム開発時の環境再現性向上
2. Pythonバージョンの確認・準備
2.1 Pythonのバージョン確認
ターミナル/コマンドプロンプトで以下を実行し、推奨の3.8以上が入っているか確認します:
python3 --version
# 例:Python 3.10.6
もし3.8未満の場合は、公式サイト(https://python.org)から最新版をインストールしてください。
2.2 pyenvなどでバージョン管理(任意)
複数バージョンを切り替えたい場合は、pyenvが便利です。以下を参考に導入しましょう:
# macOS/Linuxの場合
curl https://pyenv.run | bash
# シェル再読み込み後
pyenv install 3.10.6
pyenv global 3.10.6
— ここまでで、python3 --version
が3.10.6を指していれば準備完了です。
3. venvを使った仮想環境の作成
3.1 プロジェクトフォルダの作成
まず、任意のディレクトリに移動し、プロジェクト用フォルダを作ります。
mkdir fastapi-venv-project
cd fastapi-venv-project
3.2 venvで仮想環境を作成
Python標準のvenv
モジュールを使って、仮想環境を作成します。
python3 -m venv .venv
.venv
はフォルダ名の慣例です。任意の名前でもOKですが、慣習的に隠しフォルダにします。
3.3 仮想環境の有効化/無効化
- 有効化
- macOS/Linux:
source .venv/bin/activate
- Windows(PowerShell):
.\.venv\Scripts\Activate.ps1
- macOS/Linux:
- 無効化
deactivate
仮想環境が有効になると、ターミナルのプロンプトに(.venv)
と表示されます。
4. FastAPIとUvicornのインストール
4.1 pipのアップグレード
最新のpip
を使うため、まずアップグレードします。
pip install --upgrade pip
4.2 FastAPI本体のインストール
pip install fastapi
- FastAPIはドキュメンテーション生成機能や型ヒントを多用した先進的なフレームワークです。
4.3 ASGIサーバー(Uvicorn)のインストール
FastAPIを実行するにはASGIサーバーが必要です。Uvicornは高速かつ軽量な実装です。
pip install "uvicorn[standard]"
[standard]
を付けると、推奨される追加依存(httptools
やuvloop
など)もまとめてインストールできます。
5. 「Hello, World!」APIを実行してみよう
5.1 サンプルコードの作成
プロジェクト直下にmain.py
を作成し、以下を記述します:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def read_root():
"""
ルートパスにGETリクエストを受け取った際の処理です。
"""
return {"message": "Hello, World!"}
5.2 サーバー起動
uvicorn main:app --reload
main:app
はmain.py
内のapp
オブジェクトを指します。--reload
は開発時用オプションで、コード変更のたびに自動再起動します。
5.3 動作確認
ブラウザまたはcurlでアクセスしてみましょう。
# ターミナルで
curl http://127.0.0.1:8000/
# {"message":"Hello, World!"} が返ってくれば成功です
さらに、ドキュメントUIも確認可能です:
- Swagger UI:http://127.0.0.1:8000/docs
- ReDoc:http://127.0.0.1:8000/redoc
6. よくあるトラブルと対処法
現象 | 対処法 |
---|---|
command not found: python3 |
Pythonがインストールされていないか、パスが通っていません。<br>python --version も試し、公式サイトから再インストールを。 |
Permission denied |
仮想環境作成時に管理者権限が必要な場合があります。<br>sudo の利用やフォルダ権限を確認してください。 |
Uvicorn起動時にポート衝突 | デフォルトの8000番が別プロセスで使用中。<br>--port 8001 など別番号を指定。 |
ModuleNotFoundError: fastapi |
仮想環境が正しく有効化されていない可能性。<br>which python やpip list で確認を。 |
7. 次のステップ
- ルーティングの追加
パスパラメータやクエリパラメータの使い方を学びましょう。 - Pydanticモデルによるデータバリデーション
入力/出力の型安全性を高める方法を習得。 - データベース連携
SQLAlchemyやTortoise ORMと組み合わせてCRUD機能を実装。 - 認証・認可
OAuth2やJWTを用いたセキュアなAPI設計。
✨まとめ
本記事では、FastAPIを**仮想環境(venv)**上にインストールし、最小限の「Hello, World!」APIを立ち上げるまでを詳細に解説しました。
- venvの作成/有効化で環境汚染を防ぎ、
- pipアップグレード→FastAPI/Uvicorn導入→動作確認という流れをマスター。
これでFastAPIの基盤が整いました。次はルーティングやデータベース連携、認証機能などに進み、実践的なAPI開発を楽しんでくださいね♡
以上がFastAPIのvenv利用を含む環境構築ガイドです。ご不明点があれば、ぜひコメントでお知らせくださいませ。