2013-06-26 55 views
0

我試圖使用python環境變量添加到我的Windows機器的環境變量和代碼是一樣的東西:添加使用Python

import os 
os.environ["TONY"] = "C:\\" 

import os 
os.putenv["TONY", "C:\\"] 

但我沒有看到系統環境變量中的條目。是因爲在cmd中輸入「set」時變量列表是從機器註冊表中讀取的?

有沒有辦法在Windows上添加一個變量,以便它顯示在系統變量中?

+1

這個問題可以幫助你(或者讓你傷心) - HTTP://計算器。 com/questions/1506010/how-to-use-export-with-python-on-linux –

+0

請回答這個問題:你想爲你的python進程及其子進程更改一個env var,系統?前者很容易,後者是操作系統特定的。 – dstromberg

+0

Windows有一個[setx](http://ss64.com/nt/setx.html)命令行實用程序,該實用程序可作爲操作系統的一部分或可選的資源工具包(取決於所討論的版本)可用來執行你要。也可以通過修改其註冊表的部分內容來做類似的事情,參見[this](http://stackoverflow.com/questions/573817/where-are-environment-variables-stored-in-registry)。 – martineau

回答

1

簡短回答:Python無法以粘貼的方式編輯環境變量。但是,如果你想要做的就是在臨時修改環境中運行的東西,你可以做,與子模塊:

import os 
from subprocess import Popen 

myEnv = dict(os.environ) 
myEnv['newKey'] = 'newVal' 
shellCmd = Popen(['sh', 'someScript.sh'], env=myEnv) 
(shellOut, shellErr) = shellCmd.communicate()