On Thu, 17 Jun 2010 03:25:03 am Alan Gauld wrote: > "R. Alan Monroe" <amon...@columbus.rr.com> wrote > > >> directory, I suppose. Under windows, probably the registry. > >> There's the _winreg and configparser modules. > > > > Consider using the %USERPROFILE% environment variable rather than > > the > > registry. > > How would that work? That is just a single variable that points > to the users Settings folder. Effectively their home directory in > unix terms, so you could store the config file there. But > you couldn't store the kind of data you would store in the > registry? > > I'm confused.
Environment variables are not permanent storage. They only exist in RAM unless you take steps to recreate them from permanent storage. Under Linux, for example, environment variables are recreated each time you log in after being read from a config file, such as .bashrc. My .bashrc includes: export PYTHONPATH=/home/steve/python/ export PYTHONSTARTUP=/home/steve/python/startup.py So even if you wrote the values you cared about to one or more environment variable, they would disappear as soon as the user logged out or rebooted. It gets worse... Python includes the command os.putenv to set environment variables, but they are only set for subprocesses of the Python process that sets them. So for example, I can do this: >>> os.putenv('myenvvar', 'value') >>> os.system('echo $myenvvar') value 0 but if I turn to another shell (not a subshell) it doesn't exist: [st...@sylar ~]$ echo $myenvvar [st...@sylar ~]$ See also this: http://code.activestate.com/recipes/159462-how-to-set-environment-variables/ So unless I've missed something exceedingly subtle, writing to environment variables is not a solution to the problem of saving default values. It's not even part of a solution. -- Steven D'Aprano _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor