<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Generator" CONTENT="MS Exchange Server version 5.5.2657.73">
<TITLE>RE: [Python-au] Environment vars</TITLE>
</HEAD>
<BODY>

<P><FONT SIZE=2>Mike,</FONT>
</P>

<P><FONT SIZE=2>If that's all you're trying to do then use an os.exec*e or os.spawn*e functions and pass in a modified environment mapping.</FONT></P>

<P><FONT SIZE=2>example:</FONT>
</P>

<P><FONT SIZE=2>import os</FONT>
<BR><FONT SIZE=2>myenv = {}</FONT>
<BR><FONT SIZE=2>myenv.update(os.environ)</FONT>
<BR><FONT SIZE=2>myenv['ISC_USER'] = &quot;joe_bloe&quot;</FONT>
<BR><FONT SIZE=2>myenv['ISC_PASSWORD'] = &quot;password&quot;</FONT>
</P>

<P><FONT SIZE=2>args = [&quot;create_db.exe&quot;, &quot;create_my_db.sql&quot;]</FONT>
<BR><FONT SIZE=2>os.spawnve( os.P_WAIT, r&quot;c:\mydbengine\create_db.exe&quot;, args, myenv)</FONT>
</P>

<P><FONT SIZE=2>That should solve your problem.</FONT>
</P>

<P><FONT SIZE=2>Regards,</FONT>
</P>

<P><FONT SIZE=2>Grant</FONT>
</P>

<P><FONT SIZE=2>-----Original Message-----</FONT>
<BR><FONT SIZE=2>From: Mike Dewhirst [<A HREF="mailto:miked@dewhirst.com.au">mailto:miked@dewhirst.com.au</A>]</FONT>
<BR><FONT SIZE=2>Sent: 18 August 2005 10:25</FONT>
<BR><FONT SIZE=2>To: Grant McDonald</FONT>
<BR><FONT SIZE=2>Subject: Re: [Python-au] Environment vars</FONT>
</P>
<BR>

<P><FONT SIZE=2>Grant McDonald wrote:</FONT>
<BR><FONT SIZE=2>&gt; Can i ask what your trying to modify it for?</FONT>
</P>

<P><FONT SIZE=2>I want to call Firebird's isql utility to create a database. I can pass </FONT>
<BR><FONT SIZE=2>the name of the script in the command line but not the userid and </FONT>
<BR><FONT SIZE=2>password of the database owner. For that, isql looks at two environment </FONT>
<BR><FONT SIZE=2>vars: ISC_USER and ISC_PASSWORD</FONT>
</P>

<P><FONT SIZE=2>If I'm calling isql from either a bash or batch script I can easily set </FONT>
<BR><FONT SIZE=2>those vars - but I want a single source python script to get away from </FONT>
<BR><FONT SIZE=2>maintaining both a bash and a batch script.</FONT>
</P>

<P><FONT SIZE=2>Mike</FONT>
</P>

<P><FONT SIZE=2>&gt; </FONT>
<BR><FONT SIZE=2>&gt; -----Original Message-----</FONT>
<BR><FONT SIZE=2>&gt; From: Mike Dewhirst [<A HREF="mailto:miked@dewhirst.com.au">mailto:miked@dewhirst.com.au</A>]</FONT>
<BR><FONT SIZE=2>&gt; Sent: 18 August 2005 09:47</FONT>
<BR><FONT SIZE=2>&gt; To: Grant McDonald</FONT>
<BR><FONT SIZE=2>&gt; Cc: python-au@python.net</FONT>
<BR><FONT SIZE=2>&gt; Subject: Re: [Python-au] Environment vars</FONT>
<BR><FONT SIZE=2>&gt; </FONT>
<BR><FONT SIZE=2>&gt; </FONT>
<BR><FONT SIZE=2>&gt; Grant McDonald wrote:</FONT>
<BR><FONT SIZE=2>&gt; </FONT>
<BR><FONT SIZE=2>&gt;&gt;Not entirely sure,</FONT>
<BR><FONT SIZE=2>&gt;&gt; </FONT>
<BR><FONT SIZE=2>&gt;&gt;The docs say you should modify os.environ directly since it automatically</FONT>
<BR><FONT SIZE=2>&gt;&gt;calls putenv, but as you stated on WinXP and as you say it doesn't seem to</FONT>
<BR><FONT SIZE=2>&gt;&gt;work.&nbsp; I guess putenv may not be supported on WinXP.</FONT>
<BR><FONT SIZE=2>&gt;&gt; </FONT>
<BR><FONT SIZE=2>&gt;&gt;If you want a reliable way of modifying the environment on WinXP use the</FONT>
<BR><FONT SIZE=2>&gt;&gt;registry (unfortunately platform specific):</FONT>
<BR><FONT SIZE=2>&gt; </FONT>
<BR><FONT SIZE=2>&gt; </FONT>
<BR><FONT SIZE=2>&gt; I'd prefer to stay platform neutral. I think I'll detect os.name and </FONT>
<BR><FONT SIZE=2>&gt; scribble out a batch file to set a couple of vars if it is 'nt'.</FONT>
<BR><FONT SIZE=2>&gt; </FONT>
<BR><FONT SIZE=2>&gt; Thanks</FONT>
<BR><FONT SIZE=2>&gt; </FONT>
<BR><FONT SIZE=2>&gt; Mike</FONT>
<BR><FONT SIZE=2>&gt; </FONT>
<BR><FONT SIZE=2>&gt; </FONT>
<BR><FONT SIZE=2>&gt;&gt; </FONT>
<BR><FONT SIZE=2>&gt;&gt;System environment -&gt;</FONT>
<BR><FONT SIZE=2>&gt;&gt; </FONT>
<BR><FONT SIZE=2>&gt;&gt;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session</FONT>
<BR><FONT SIZE=2>&gt;&gt;Manager\Environment</FONT>
<BR><FONT SIZE=2>&gt;&gt; </FONT>
<BR><FONT SIZE=2>&gt;&gt;User environment -&gt;</FONT>
<BR><FONT SIZE=2>&gt;&gt; </FONT>
<BR><FONT SIZE=2>&gt;&gt;HKEY_CURRENT_USER\Environment</FONT>
<BR><FONT SIZE=2>&gt;&gt; </FONT>
<BR><FONT SIZE=2>&gt;&gt; </FONT>
<BR><FONT SIZE=2>&gt;&gt;Regards,</FONT>
<BR><FONT SIZE=2>&gt;&gt; </FONT>
<BR><FONT SIZE=2>&gt;&gt;Grant McDonald</FONT>
<BR><FONT SIZE=2>&gt;&gt; </FONT>
<BR><FONT SIZE=2>&gt;&gt; </FONT>
<BR><FONT SIZE=2>&gt;&gt;</FONT>
<BR><FONT SIZE=2>&gt;&gt;-----Original Message-----</FONT>
<BR><FONT SIZE=2>&gt;&gt;From: python-au-bounces@python.net [<A HREF="mailto:python-au-bounces@python.net">mailto:python-au-bounces@python.net</A>]On</FONT>
<BR><FONT SIZE=2>&gt;&gt;Behalf Of Mike Dewhirst</FONT>
<BR><FONT SIZE=2>&gt;&gt;Sent: 17 August 2005 21:28</FONT>
<BR><FONT SIZE=2>&gt;&gt;To: python-au@python.net</FONT>
<BR><FONT SIZE=2>&gt;&gt;Subject: [Python-au] Environment vars</FONT>
<BR><FONT SIZE=2>&gt;&gt;</FONT>
<BR><FONT SIZE=2>&gt;&gt;</FONT>
<BR><FONT SIZE=2>&gt;&gt;I'm having difficulty inserting a couple of vars into the environment from</FONT>
<BR><FONT SIZE=2>&gt;&gt;within a script. </FONT>
<BR><FONT SIZE=2>&gt;&gt;</FONT>
<BR><FONT SIZE=2>&gt;&gt;os.putenv(varname, value) doesn't seem do it.</FONT>
<BR><FONT SIZE=2>&gt;&gt;</FONT>
<BR><FONT SIZE=2>&gt;&gt;The code doesn't barf but (in Windows XP) the set command doesn't indicate</FONT>
<BR><FONT SIZE=2>&gt;&gt;it actually happened. I haven't tried it with Linux.</FONT>
<BR><FONT SIZE=2>&gt;&gt;</FONT>
<BR><FONT SIZE=2>&gt;&gt;Is there a trick to it?</FONT>
<BR><FONT SIZE=2>&gt;&gt;</FONT>
<BR><FONT SIZE=2>&gt;&gt;TIA</FONT>
<BR><FONT SIZE=2>&gt;&gt;</FONT>
<BR><FONT SIZE=2>&gt;&gt;Mike</FONT>
<BR><FONT SIZE=2>&gt;&gt;</FONT>
<BR><FONT SIZE=2>&gt;&gt;</FONT>
<BR><FONT SIZE=2>&gt;&gt;</FONT>
<BR><FONT SIZE=2>&gt; </FONT>
<BR><FONT SIZE=2>&gt; </FONT>
</P>

</BODY>
<!--[object_id=#infocomp.com#]--><P><FONT face=Arial color=#808080 size=1>Important notice: This message is intended for the individual(s) and entity(s) addressed. The information contained in this transmission and any attached, may be confidential and may also be the subject of legal privilege, public interest immunity or legal professional privilege. Any review, retransmission, dissemination or other use of, taking of any action in reliance upon this information by person or entities other than the recipient is prohibited and requires authorization from the sender. If you are not the addressee indicated in this message (or responsible for delivery of the message to such person) you may not copy or deliver this message to anyone. In such cases you should destroy this message and kindly notify the sender by reply email. </FONT></P>
<P><FONT face=Arial color=#808080 size=1>WARNING: Although Infocomp has taken reasonable precautions so that no viruses&nbsp;are present in this e-mail, the company cannot accept responsibility for any loss or damage arising from the use of e-mail attachments.</FONT></P></HTML>