Steven Bethard <[EMAIL PROTECTED]> writes: > Ben Finney wrote: > > Thanks! I was unaware of that module. It does seem to nicely > > address the issue I discussed. > > You might try the runpy module as-is with Python 2.4. I don't know > if it works, but it's pure Python so it's worth a try.
Drat. It uses (by explicit design) "the standard import mechanism" to load the module, which means it doesn't work for exactly the thing I'm trying to do: load a program file *not* named with a '.py' suffix. I've long been able to load my program modules from no-suffix filenames (or indeed any non-standard filenames) with this function:: def make_module_from_file(module_name, file_name): """ Make a new module object from the code in specified file """ from types import ModuleType module = ModuleType(module_name) module_file = open(file_name, 'r') exec module_file in module.__dict__ sys.modules[module_name] = module return module Unfortunately, it seems that "module is already present with name 'foo' in 'sys.modules'" is insufficient for the Python import mechanism. The module loader used by 'runpy' still complains that it can't find the module, which is no surprise because its filename is not that of a library module. Perhaps I need to delve into the details of the import mechanism myself :-( -- \ "With Lisp or Forth, a master programmer has unlimited power | `\ and expressiveness. With Python, even a regular guy can reach | _o__) for the stars." -- Raymond Hettinger | Ben Finney -- http://mail.python.org/mailman/listinfo/python-list