2

質問: Pythonで変数HOMEDRIVEと変数をオーバーライドすることはできませんか? HOMEPATHこれらの変数が保存されている正確な場所は、[環境変数] ダイアログ ボックスに表示されません。

説明:

Python では、以下を使用して環境変数にアクセスできます。

os.environ['variable_name']

たとえば、[システム プロパティ] -> [詳細設定] -> [環境変数] に移動し、GARYvalueという名前のシステム変数を作成するとXYZ、Python スクリプトから次のコマンドを使用してこれに正常にアクセスできます。

os.environ['GARY'] 

(期待どおり「XYZ」を返します)

ただし、変数の値を変更することはできませんHOMEDRIVEos.environ['HOMEDRIVE']Python スクリプトで使用すると、 が返されますC:。そこで、[システム プロパティ] -> [詳細設定] -> [環境変数] に移動し、という名前のシステム変数を作成し、HOMEDRIVEその値を に設定しましたX:。しかし、私が使用するとき

os.environ['HOMEDRIVE']

私のスクリプトでは、まだ返されていますC:

HOMEDRIVEおよびHOMEPATH変数をオーバーライドすることはできませんか? これらはある意味で特別ですか?

これらの変数が正確に保存されている場所は、[環境変数] ダイアログ ボックスに表示されません。おそらくそれらは別の場所に保存されているためHOMEDRIVE、Windowsでシステム変数を作成しているにもかかわらず、別の場所からオーバーライドされています。

4

1 に答える 1

3

Python でのみ変数をオーバーライドする場合は、コードで行うことができます。

os.environ['HOMEDRIVE'] = 'D:'

これをsitecustomize.pyに配置すると、Python スクリプトを呼び出すたびに実行されます。ドキュメントから:

... 任意のサイト固有のカスタマイズを実行できる、sitecustomize という名前のモジュールをインポートしようとします。これは通常、システム管理者によって site-packages ディレクトリに作成されます。

ただし、Windows 自体の環境変数を変更する場合は、このスーパーユーザーの stackexchange の回答を参照してください。

于 2013-05-15T15:50:12.047 に答える