0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Python】Eclipse2025でPythonの環境構築とFastAPIプロジェクト作成まで解説(Windows11)

0
Posted at

前回記事に続いて今回はFastAPIの構築をやっていきます。

[ファイル]⇒[新規]⇒[PyDevプロジェクト]を選択します。
image.png

プロジェクトを作成したら、このプロジェクトの上で右クリックして[コマンドプロンプト]を選択します。

image.png

コマンドプロンプト上で仮想環境(venv)を作成します。

python -m venv venv

成功すると、下記のようなプロジェクト構成になります。
image.png

下記のコマンド使って仮想環境を有効化します。

.\venv\Scripts\activate

成功するとコマンドが下記のようになります。

(venv) C:\workspace\<プロジェクト名>

下記のコマンドを使ってFastAPIとサーバuvicornをインストールします。

pip install fastapi uvicorn

すると下記のようにソフトウェアがインストールされます。
image.png

``

FastAPIとサーバuvicornをインストールできたかを下記のコマンドで確認します。

pip list

PyDevプロジェクトで新しく作成した仮想環境を使用するようにEclipseを設定します。
Eclipseで[ウィンドウ]⇒[設定]⇒[PyDev]⇒[Python インタープリター]を選択します。
image.png

[新規]⇒[python/pypy.exeの参照]を選択します。
image.png

仮想環境内のPython実行可能ファイル (venv/bin/python または venv\Scripts\python.exe) を参照して選択します。
今回は、作成したプロジェクトの[Scripts]フォルダにあるPython.exeを選択します。その後[適用]ボタンを押します。
PyDevがライブラリを検出するのを待ち、OKをクリックして設定を保存します。

image.png

プロジェクト直下に main.py を作成します。
image.png

❌ main.py は venv の中には作りません
✅ main.py は venv と同じ階層(プロジェクト直下)に作ります

なぜダメ?
venv は Python本体とライブラリ置き場
自作コードを入れる場所ではない
仮想環境を消したらコードも消える 😱

下記のコマンドでFastAPIを起動します。

uvicorn main:app --reload

image.png

なぜ「プロジェクト直下」なのか?

FastAPIの起動コマンド:

uvicorn main:app --reload

これは、
mainmain.py
appapp = FastAPI()
という意味だからです。

フォルダを分けたい場合(少し発展)
後でよく使う構成はこんな感じです👇

fastapi_sample/
├─ venv/
├─ app/
│   ├─ __init__.py
│   └─ main.py

その場合の起動コマンド:

uvicorn app.main:app --reload

サイト

EclipseでPythonを使えるようにする(Windows, Pleiades2023, Eclipse, Python3, PyDev)

pipenvとtoxでpytestをやってみました

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?