Alex D
Alex D

Reputation: 979

Python script running from SCONS cannot access environment variables

Inside of my scons script I execute another python script:

fs = env.Command('fs', None, 'python updatefs.py')
AlwaysBuild(fs)
Depends(fs,  main)

In python script I am trying to access an environment variable:

import os
mode = os.environ['PROC_MODE']

The variable was previously set up in the shell:

export PROC_MODE='some_mode'

Python complain:

KeyError: 'PROC_MODE'

What is the proper way to propagate environment to an external script?

Upvotes: 0

Views: 433

Answers (1)

bdbaddog
bdbaddog

Reputation: 3511

This is covered in lightly in the FAQ:

FAQ

Basically SCons constructs a clean reproducible set of environment variables so that differences in any user's environment won't break a build.

So if you want to propagate a particular variable from your shell you can explicitly do it as such:

env['ENV']['MY_VARIABLE']=os.environ['MY_VARIABLE']

If you wanted to progagate all environment variables you'd do this:

env['ENV'] = os.environ

Where env is your Environment()

Upvotes: 1

Related Questions