まずはPythonをインストールします。 今回はバージョンを固定して使うため、Homebrewで特定のバージョンをインストールします。
$ brew search python@3
# 利用可能なバージョン一覧が表示されます
$ brew install python@3.13Pythonプロジェクトの依存管理には、Poetry を使います。
$ brew install poetryPoetryで新しいPythonプロジェクトを作成します。
$ poetry init python-starterプロジェクトごとに仮想環境を分けたいので、以下の設定もしておきましょう。
$ cd python-starer
$ poetry config --local virtualenvs.in-project trueこれで、プロジェクト直下に .venv フォルダが作成されるようになります。
初期構成はこんな感じになります。
├── README.md
├── pyproject.toml # 依存管理ファイル(package.json的なもの)
├── src
│ └── python_starter
│ └── __init__.py
└── tests
└── __init__.py
まずは動作確認のため、簡単なコードを書いてみましょう。src/python-starter/main.pyを作成して、Hello Worldを出力するようにします。
print("Hello World")$ poetry run python src/python_starter/main.py
Hello World$ poetry add fastapi uvicornsrc/python-starter/main.pyを以下のように修正します。
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def root():
return {"message": "OK"}Ruff(Linter/Formatter)も導入しておきます。
$ poetry add --dev ruffVSCodeを使っている場合は、拡張機能もインストールしておくと便利です。
.vscode/settings.json を以下のように設定します。自動インポートがされたり、保存時にフォーマットが走ります。
{
"python.analysis.autoImportCompletions": true,
"python.analysis.indexing": true,
"[python]": {
"editor.defaultFormatter": "charliermarsh.ruff",
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.fixAll": "explicit",
"source.organizeImports": "explicit"
}
}
}$ poetry run uvicorn src.python_starter.main:app --port 8080 --reload