Pythonを使用してプラットフォームに依存しない方法でPATH
環境変数を変更する方法はありますか?
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.environ
は実際には辞書ではありません。これは特別なディクショナリです-likeオブジェクトは setenv を使用して現在のプロセスで環境変数を実際に設定します。
>>> os.environ.__class__
<class os._Environ at 0x100472050>
>>> import os
>>> os.environ["HELLO"] = "WORLD"
>>> os.getenv("HELLO")
'WORLD'
これは、PATH
(およびその他の環境変数)が同じプロセスで実行されるCコードから見えることを意味します。
(コメントには書式を含めることができないため、これを回答に入れなければなりませんが、それは重要なポイントだと感じています。これは、実際には 「エクスポート」に相当するものがないというコメント 。)
Pythonで環境変数を変更する際の注意点は、「export」シェルコマンドに相当するものがないことです。現在のプロセスに変更を注入する方法はなく、子プロセスのみです。