を変更する方法はありますか PATH
Pythonを使用してプラットフォームに依存しない方法で環境変数ますか?
似たようなものos.path.join()
?
回答:
を変更できるはずos.environ
です。
os.pathsep
は異なるパスを区切る文字なので、これを使用して新しいパスを追加する必要があります。
os.environ["PATH"] += os.pathsep + path
または、リストに追加するパスが複数ある場合:
os.environ["PATH"] += os.pathsep + os.pathsep.join(pathlist)
あなたが述べたように、os.path.join
あなたが別々の部分からそれらを構築しなければならない場合にあなたが追加しなければならない個々のパスごとに使用することもできます。
os.pathsep
私が言及した(PATHに固有の)という意味ですか?
os.path.sep != os.pathsep
。
これos.environ
は実際には辞書ではないことに注意してください。これは、setenvを使用して現在のプロセスで環境変数を実際に設定する、辞書のような特別なオブジェクトです。
>>> os.environ.__class__
<class os._Environ at 0x100472050>
>>> import os
>>> os.environ["HELLO"] = "WORLD"
>>> os.getenv("HELLO")
'WORLD'
これは、PATH
(および他の環境変数)が同じプロセスで実行されるCコードに表示されることを意味します。
(コメントにはフォーマットを含めることができないため、これを回答に入れる必要がありますが、重要なポイントだと思います。これは、「エクスポート」に相当するものがないというコメントに対するコメントです。)
Pythonで環境変数を変更する際に注意すべき点は、「export」シェルコマンドに相当するものがないことです。現在のプロセスに変更を挿入する方法はなく、子プロセスのみです。
os.system
、他のプロセスを起動するには、Pythonアプリケーションから、os.popen
またはのようなコマンドをsubprocess.Popen
使用する必要があります。そうでなければ、それはほとんど無意味です。
export
変数がすべての子プロセスの環境にコピーされますが、親プロセスには影響しません。