How to dynamically import variables after executing python script from within another script
Question: I want to extract a variable named `value` that is set in a second,
arbitrarily chosen, python script.

The process works when do it manually in pyhton's interactive mode, but when I
run the main script from the command line, `value` is not imported.

The main script's input arguments are already successfully forwarded, but
`value` seems to be in the local scope of the executed script.

I already tried to define `value` in the main script, and I also tried to set
its accessibility to global.

This is the script I have so far

    
    
    import sys
    import getopt
    
    def main(argv):
        try:
            (opts, args) = getopt.getopt(argv, "s:o:a:", ["script=", "operations=", "args="])
        except getopt.GetoptError as e:
            print(e)
            sys.exit(2)
    
        # script to be called
        script = ""
    
        # arguments that are expected by script
        operations = []
        argv = []
    
        for (opt, arg) in opts:
    
            if opt in ("-o", "--operations"):
                operations = arg.split(',')
                print("operations = '%s'" % str(operations))
    
            elif opt in ("-s", "--script"):
                script = arg;
                print("script = '%s'" % script)
    
            elif opt in ("-a", "--args"):
                argv = arg.split(',')
                print("arguments = '%s'" % str(argv))
    
        # script should define variable 'value'
        exec(open(script).read())
        print("Executed '%s'. Value is printed below." % script)
        print("Value = '%s'" % value)
    
    if __name__ == "__main__":
        main(sys.argv[1:])
    


Answer: The `value` variable has been put into your locals dictionary by the `exec`,
but was not visible to the compiler. You can retrieve it like this:

    
    
    print("Value = '%s'" % locals()['value'])
    

I would prefer an `import` solution

