日々精進

新しく学んだことを書き留めていきます

コマンドライン引数と環境変数の使い分け基準

pythonのプログラムを起動するときに引数を渡す方法としては主に

  • python main.py --start 1 --end 2 のように起動引数として渡す場合
  • 環境変数経由で渡す場合
  • 設定ファイルで渡す場合

  • 変更頻度が低い、かつ環境毎に変わらない場合は設定ファイルを使う

  • 変更頻度が低い、かつ環境毎に変わる場合は環境変数を使う。コンテナ内でプログラムを動かす場合は環境毎にdocker composeファイルを作り、その中で環境変数を定義する。
  • 変更頻度が高い(バッチ実行毎に変わるとか)場合は起動引数を使う

環境変数は起動引数よりもスコープが広い(他のプログラムからもアクセスしたり変更したりできる)し、誤った値になっていた場合に気付きにくいのでなるべく起動引数を使うべき。

参考:

stackoverflow.com