「サーバ - REST API」の版間の差分

ナビゲーションに移動 検索に移動
88行目: 88行目:
<br>
<br>
Pythonと仮想環境の設定を行う。<br>
Pythonと仮想環境の設定を行う。<br>
  python3 -m venv venv
これにより、プロジェクトごとに独立したPython環境を作成することができる。<br>
  python3 -m venv <作成する仮想環境のディレクトリ名>
<br>
<br>
vi ~/.profile
Pythonの仮想環境をアクティベートする。<br>
<br>
# ~/.profileファイル
  source venv/bin/activate
  source venv/bin/activate
<br>
<br>
必要なPythonライブラリをインストールする。<br>
必要なPythonライブラリをインストールする。<br>
  pip install fastapi uvicorn sqlalchemy
  pip install fastapi uvicorn sqlalchemy
<br>
<u>※注意</u><br>
<u>venv/bin/activateスクリプトを~/.profileファイル等に設定することは非推奨である。</u><br>
* <u>activateスクリプトは相対パスで動作するため、フルパスで指定する必要がある。</u>
* <u>常に特定の仮想環境がアクティブになってしまうため、他のプロジェクトで異なる仮想環境を使用する場合に問題が発生する。</u>
* <u>シェルのセッションごとに自動的にアクティベートすると、どの環境で作業しているのか理解しにくい。</u>
<br>
<u>代替案として、以下に示すような方法が推奨される。</u><br>
<u>以下に示すような方法ならば、必要な時のみ仮想環境をアクティベートすることが可能なため、柔軟な運用が可能になる。</u><br>
<br>
<u>特に、複数のプロジェクトを扱う場合は、2番目や3番目の方法が便利である。</u><br>
<br>
<syntaxhighlight lang="sh">
# 方法 1
# エイリアスを設定する方法 (~/.profileファイル等に記述)
alias activate-myproject='source <activateスクリプトのパス>'
</syntaxhighlight>
<br>
<syntaxhighlight lang="sh">
# 方法 2
# プロジェクトディレクトリに入った時のみ自動的にアクティベートする方法 (~/.profileファイル等に記述)
function cd()
{
    builtin cd "$@"
    # プロジェクトディレクトリに入った時のみ仮想環境をアクティベート
    if [ -d "venv" ]; then
      # 既に仮想環境がアクティブでない場合のみ
      if [ -z "$VIRTUAL_ENV" ]; then
          source venv/bin/activate
      fi
    fi
}
</syntaxhighlight>
<br>
<syntaxhighlight lang="sh">
# 方法 3
# direnvのような専用ツールを使用する方法
# プロジェクトディレクトリの.envrcファイルに記述
layout python3  # Pythonの仮想環境を自動的に管理
</syntaxhighlight>
<br>
<br>
==== Node.js + Expressを使用する場合 ====
==== Node.js + Expressを使用する場合 ====

案内メニュー