app的な文脈だったり色々)。自前で頑張っても良いけれど。自分でコードを書かずに済ませたい。何か良いライブラリは無いかなと探してみたらあったので使いかたのメモ。startedを読むだけでは挙動を把握できなかったので色々調べてみた。挙動を一言で言うと、os.environに対してdefault値を与えるもの。以下のような.envがあるとする。worldこのとき環境変数を指定して実行せずともdefault値として.envに記述された値が使われる。override=Trueoverride=Trueを使うとdotenv側の設定を尊重する。使いみちはあまりないと思う。world環境変数で指定した値が使われなくなる。configとして扱う分にはこちらのほうが便利かもしれない。world'}prefixは.envに書かれたものが使われる。messageは環境変数の解釈が入りhelloではなくbyeが使われる。ひと手間だけれど、以下の様にすれば期待したふるまいになりそう。world'}複数の.envが用意されていた場合に読まれる.envについてこれはfind_dotenv()の実行で確認できる。複数のファイルを全部マージするなどと言ったマジカルな挙動は存在しない。最初に見つかった.envファイルを使う。現在の位置に存在しなかった場合に親方向を辿って探してはくれる。filesここでそれぞれ見られる.envは以下の様な形。.env調査用のコードは以下のようなもの。'root'}このときの.env.envx="root"sub/.envx=suby=valuesubprocessの実行時の環境変数subprocessに環境変数を引き継ぐ方法は通常のsubprocessの利用と変わらない。dotenvで読み込んだときに環境変数に設定するので。scope的な辞書)。先程の.env(再掲)を以下の様なsubprocessを利用したコードで使う。check=True)messageという環境変数が引き継がれる。world個別に設定したい場合これはオフトピックだけれど、個別に設定したい場合はsubprocess.runのenvオプションに辞書を渡せば良い。16:41環境変数で設定を管理したくなった場合のpython-dotenvのメモTweet広告を非表示にする関連記事2020-01-18今pythonでCLIの設定ファイルと付き合うならpydanticを使うかも?argparse関連の記事を最近色々書いてきたけれど。monogusaというパッケージを作りはじめた。componentという機能を追加した月別アーカイブはてなブログをはじめよう!podhmoさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。