Importing v reloading modules modules

Discussion in 'Python' started by Peter Peyman Puk, Mar 19, 2010.

  1. Hello

    I submitted this earlier today, but I was not clear enough, so I am
    posting it again.

    I am running a simulator written in python. The simulator has a small
    TextView (actually a SourceView) widget which lets the user writes
    scripts, and when they are satisfied they can execute that script to
    get results. For arguments sake, we write a simple script and save it
    as and we import it and execute it more or less like so.

    import A

    #assume there is a function called test() in module A

    Then the user modifies the contents of and saves it again (to now all we have to do is the following

    if 'A' in dir():
    import A


    But since the user chooses the file name, and not me, the programmer,
    the module names will vary. Let's assume the module names are loaded
    and stored in the list module_names, and we iterate over them, and
    pass them as arguments to a function to import or reload each model as

    def import_or_reload(module_name):

    if module_name in sys.modules:
    #somehow reload
    #somehow import

    does anyone know how to deal with the reload and import as they both
    present problems since module_name is a string, and to reload
    something along the lines of the below must be executed

    exec 'reload(%s)'%module_name

    and then we also have to deal with the scope issue since the loaded
    module will be local and not global. I can execute something like so

    exec 'global %s'%module_name

    but that does not work very well with exec

    any suggestions?


    Peter Peyman Puk, Mar 19, 2010
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.