Home

On Thu, 30 Aug 2007 10:29:24 -0700, T <google@tyeon.com> declaimed the
following in comp.lang.python:


> Can you tell me what I am still missing please?
>
Probably that you don't want to use os.putenv()...

>>> os.environ["PATH"]
'E:\\Python24\\;C:\\GNAT\\bin;C:\\bin;C:\\WINDOWS\\system32; C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\PROGRA~1\\MySQL\ \MySQL
Server 5.0\\bin;C:\\Program Files\\SciTE;C:\\Program
Files\\Java\\jre1.6.0\\bin;C:\\Program
Files\\Java\\jdk1.6.0\\bin;C:\\Program Files\\Common
Files\\Adobe\\AGL;C:\\MSSQL7\\BINN;c:\\PROGRA~1\\sdb\\progra ms\\bin;c:\\PROGRA~1\\sdb\\programs\\pgm;C:\\Tcl\\bin;C:\\Pr ogram
Files\\QuickTime\\QTSystem\\;C:\\Program Files\\Common Files\\Roxio
Shared\\DLLShared\\;C:\\Program Files\\Common Files\\Roxio
Shared\\9.0\\DLLShared\\;e:\\Python24\\Scripts;c:\\Regina'
>>> os.environ["PATH"] = "c:\\windows\\system32"
>>> os.environ["PATH"]
'c:\\windows\\system32'
>>> os.getenv("PATH")
'c:\\windows\\system32'
>>> os.environ["PATH"] ='E:\\Python24\\;C:\\GNAT\\bin;C:\\bin;C:\\WINDOWS\\system32 ;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\PROGRA~1\\MySQL \\MySQL Server 5.0\\bin;C:\\Program Files\\SciTE;C:\\Program Files\\Java\\jre1.6.0\\bin;C:\\Program Files\\Java\\jdk1.6.0\\bin;C:\\Program Files\\Common Files\\Adobe\\AGL;C:\\MSSQL7\\BINN;c:\\PROGRA~1\\sdb\\progra ms\\bin;c:\\PROGRA~1\\sdb\\programs\\pgm;C:\\Tcl\\bin;C:\\Pr ogram Files\\QuickTime\\QTSystem\\;C:\\Program Files\\Common Files\\Roxio Shared\\DLLShared\\;C:\\Program Files\\Common Files\\Roxio Shared\\9.0\\DLLShared\\;e:\\Python24\\Scripts;c:\\Regina')
>>> os.environ["PATH"]
'c:\\windows\\system32'
>>> os.getenv("PATH")
'c:\\windows\\system32'
>>> os.environ["PATH"] ='E:\\Python24\\;C:\\GNAT\\bin;C:\\bin;C:\\WINDOWS\\system32 ;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\PROGRA~1\\MySQL \\MySQL Server 5.0\\bin;C:\\Program Files\\SciTE;C:\\Program Files\\Java\\jre1.6.0\\bin;C:\\Program Files\\Java\\jdk1.6.0\\bin;C:\\Program Files\\Common Files\\Adobe\\AGL;C:\\MSSQL7\\BINN;c:\\PROGRA~1\\sdb\\progra ms\\bin;c:\\PROGRA~1\\sdb\\programs\\pgm;C:\\Tcl\\bin;C:\\Pr ogram Files\\QuickTime\\QTSystem\\;C:\\Program Files\\Common Files\\Roxio Shared\\DLLShared\\;C:\\Program Files\\Common Files\\Roxio Shared\\9.0\\DLLShared\\;e:\\Python24\\Scripts;c:\\Regina'
>>> os.environ["PATH"]
'E:\\Python24\\;C:\\GNAT\\bin;C:\\bin;C:\\WINDOWS\\system32; C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\PROGRA~1\\MySQL\ \MySQL
Server 5.0\\bin;C:\\Program Files\\SciTE;C:\\Program
Files\\Java\\jre1.6.0\\bin;C:\\Program
Files\\Java\\jdk1.6.0\\bin;C:\\Program Files\\Common
Files\\Adobe\\AGL;C:\\MSSQL7\\BINN;c:\\PROGRA~1\\sdb\\progra ms\\bin;c:\\PROGRA~1\\sdb\\programs\\pgm;C:\\Tcl\\bin;C:\\Pr ogram
Files\\QuickTime\\QTSystem\\;C:\\Program Files\\Common Files\\Roxio
Shared\\DLLShared\\;C:\\Program Files\\Common Files\\Roxio
Shared\\9.0\\DLLShared\\;e:\\Python24\\Scripts;c:\\Regina'
>>> os.getenv("PATH")
'E:\\Python24\\;C:\\GNAT\\bin;C:\\bin;C:\\WINDOWS\\system32; C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\PROGRA~1\\MySQL\ \MySQL
Server 5.0\\bin;C:\\Program Files\\SciTE;C:\\Program
Files\\Java\\jre1.6.0\\bin;C:\\Program
Files\\Java\\jdk1.6.0\\bin;C:\\Program Files\\Common
Files\\Adobe\\AGL;C:\\MSSQL7\\BINN;c:\\PROGRA~1\\sdb\\progra ms\\bin;c:\\PROGRA~1\\sdb\\programs\\pgm;C:\\Tcl\\bin;C:\\Pr ogram
Files\\QuickTime\\QTSystem\\;C:\\Program Files\\Common Files\\Roxio
Shared\\DLLShared\\;C:\\Program Files\\Common Files\\Roxio
Shared\\9.0\\DLLShared\\;e:\\Python24\\Scripts;c:\\Regina'
>>>

From the documentation:

""""
putenv( varname, value)

Set the environment variable named varname to the string value. Such
changes to the environment affect subprocesses started with os.system(),
popen() or fork() and execv(). Availability: most flavors of Unix,
Windows.
""""
Note the key phrase: "... affect subprocesses started with..."

Changes via os.putenv() are only seen by the subprocesses created
after the change, they do not change the "current environment"

>>> import popen2
>>> o, i = popen2.popen2("echo %PATH%")
>>> print o.readlines()
['E:\\Python24\\;C:\\GNAT\\bin;C:\\bin;C:\\WINDOWS\\system32 ;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\PROGRA~1\\MySQL \\MySQL
Server 5.0\\bin;C:\\Program Files\\SciTE;C:\\Program
Files\\Java\\jre1.6.0\\bin;C:\\Program
Files\\Java\\jdk1.6.0\\bin;C:\\Program Files\\Common
Files\\Adobe\\AGL;C:\\MSSQL7\\BINN;c:\\PROGRA~1\\sdb\\progra ms\\bin;c:\\PROGRA~1\\sdb\\programs\\pgm;C:\\Tcl\\bin;C:\\Pr ogram
Files\\QuickTime\\QTSystem\\;C:\\Program Files\\Common Files\\Roxio
Shared\\DLLShared\\;C:\\Program Files\\Common Files\\Roxio
Shared\\9.0\\DLLShared\\;e:\\Python24\\Scripts;c:\\Regina\n' ]
>>> o.close()
>>> os.putenv("PATH", "C:\\windows\\system32")
>>> o, i = popen2.popen2("echo %PATH%")
>>> print o.readlines()
['C:\\windows\\system32\n']
>>>
--
Wulfraed Dennis Lee Bieber KD6MOG
wlfraed@ix.netcom.com wulfraed@bestiaria.com
HTTP://wlfraed.home.netcom.com/
(Bestiaria Support Staff: web-asst@bestiaria.com)
HTTP://www.bestiaria.com/

previous
next

pass-by-reference for template?
Re: Python statements not forcing whitespace is messy?
Re: HOWTO use a Factory
Re: Rename multiple files using names in a text file
curses: x, y positioning
www.bwin.com
bwin.com
fotografia ślubna lublin
Bajki
affiliate