--- forking.py Mon Apr 26 12:53:43 2010 +++ Copy of forking.py Mon Apr 26 12:53:00 2010 @@ -447,17 +447,22 @@ dirs = [os.path.dirname(main_path)] assert main_name not in sys.modules, main_name - file, path_name, etc = imp.find_module(main_name, dirs) + try: - # We would like to do "imp.load_module('__main__', ...)" - # here. However, that would cause 'if __name__ == - # "__main__"' clauses to be executed. - main_module = imp.load_module( - '__parents_main__', file, path_name, etc - ) - finally: - if file: - file.close() + main_module = __import__(main_name) + except ImportError: + file, path_name, etc = imp.find_module(main_name, dirs) + + try: + # We would like to do "imp.load_module('__main__', ...)" + # here. However, that would cause 'if __name__ == + # "__main__"' clauses to be executed. + main_module = imp.load_module( + '__parents_main__', file, path_name, etc + ) + finally: + if file: + file.close() sys.modules['__main__'] = main_module main_module.__name__ = '__main__'