Passing environment variable to "subprocess" causes failure
rdmurray at bitdance.com
rdmurray at bitdance.com
Tue Feb 3 22:08:31 EST 2009
Quoth MRAB <google at mrabarnett.plus.com>:
> davidgould at davidgould.com wrote:
> > I'm attempting to run subprocess and passing in an environment
> > variable. When I do this the child process fails with an error. When I
> > don't pass an environement variable it runs fine.
> >
> > BTW Running this code under Windows XP with Python 2.6.1
> >
> > Code A:
> >
> > p = subprocess.Popen( ['python', '-V'], env={ 'PYTHONPATH': 'C:/
> > Documents and Settings/David Gould/workspace/DgTools/Common/Trunk/
> > Source' } )
> > print p.communicate()[0]
> > print p.returncode
> >
> > Output:
> >
> > None
> > -1072365564
> >
> > Code B:
> >
> > p = subprocess.Popen( ['python', '-V'] )
> > print p.communicate()[0]
> > print p.returncode
> >
> > Output:
> >
> > Python 2.6.1
> > 0
> >
> > Any idea why passing an environment variable causes it to fail?
> > Thanks.
> >
> Are you sure it's not the path within the dict you're passing that's wrong?
Or there's something missing from the environment that python needs,
causing a non-zero return code when it is missing. (That seems odd,
though.)
You ought to print communiicate()[1] to see if there is an
accompanying error message that would shed light on the problem.
--RDM
More information about the Python-list
mailing list