On Aug 6, 3:57 am, David Cournapeau <[email protected]> wrote: > On Thu, Aug 6, 2009 at 12:39 AM, Kosta<[email protected]> wrote: > > > Setenv.bat sets up the path and other environment variables build.exe > > needs to compile and link (and even binplace) its utilities. So > > building itself is not the issue. The problem is that if I call > > setenv.bat from Python and then build.exe, but the modifications to > > the path (and other environment settings) are not seen by Python, so > > the attempt to build without a specified path fails. > > It sounds like you do not propagate the environment when calling > setenv.bat from python. There is an option to do so in > subprocess.Popen init method, or you can define your own environment > if you do not want to propagate the whole environment (but this is > often difficult to avoid for build environment in my experience, > expecially if you don't have access to the sources of the whole system > to check which variables are necessary). > > David
David, Thanks you. I looked up the docs on Popen (http://docs.python.org/ library/subprocess.html) where I read: On Windows: the Popen class uses CreateProcess() to execute the child program, which operates on strings. If args is a sequence, it will be converted to a string using the list2cmdline() method. Please note that not all MS Windows applications interpret the command line the same way: list2cmdline() is designed for applications using the same rules as the MS C runtime. My interpretation of the above (and your email) is that using Popen allows one to pass the Python environment to a child processs (in my case, setenv.bat). I need the reverse, to propagate from the child to the parent. Thanks, Kosta -- http://mail.python.org/mailman/listinfo/python-list
