私の設定はos.environ
で、デフォルト値(私のニーズの90%をカバーしています)です。私は特別なアプリケーションフレームワークパッケージ、例えばSALOME
と呼ばれ、システム環境にパッケージインストールを提供せず、自己完結型であるようにしようとしています。したがって、環境変数に依存する特殊な古い技術の使用が必要です。sys.path
とPYTHONPATH
はそれが必要な唯一のものです。それが作成する環境の中でos.environ
を呼び出すときに必要なすべての変数を取得できます。私はそのos.environ
辞書をシリアル化することができます。Pythonでos.environ joinを実行する方法は?
os.environ
のマージをどのように適用するのでしょうか現在実行中のシステムにシリアル化によって取得したシステムがありますか?
import json
import os
with open('environ.json', 'w') as f:
json.dump(dict(**os.environ), f)
あなたは次のように戻ってそれらを読むことができます(別のプログラムで)
import json
import os
with open('environ.json', 'r') as f:
os.environ.update(json.load(f))
にのみ追加されますか:
あなたは 'os.environ.update(deserialized_environment)'のような意味ですか? – mgilson
@mqilson:そうですね。削除はありません - 挿入と追加だけです。 – DuckQueen
@DuckQueenと、なぜ正確にmgilsonのソリューションがあなたのために機能しないのですか? 'os.environ'はdictであり、もう一つのオブジェクトはdictであり、' dict.update'はあなたの説明どおりに動作します.Dictデータは 'update()'引数のデータによって上書きされます。競合しない鍵はそのまま残される。 –