original version of the function to really get the new functionyou must refer to it as module function after the reloador rerun the fromfrom imp import reload import module reload(modulefrom module import function function( or give up and use module function(nowthe new version of the function will finally runbut it seems an awful lot of work to get there as you can seethere are problems inherent in using reload with fromnot only do you have to remember to reload after importsbut you also have to remember to rerun your from statements after reloads this is complex enough to trip up even an expert once in while in factthe situation has gotten even worse in python xbecause you must also remember to import reload itselfthe short story is that you should not expect reload and from to play together nicely againthe best policy is not to combine them at all--use reload with importor launch your programs other waysas suggested in using the run-run module menu option in idlefile icon clickssystem command linesor the exec built-in function recursive from imports may not work saved the most bizarre (andthankfullyobscuregotcha for last because imports execute file' statements from top to bottomyou need to be careful when using modules that import each other this is often called recursive importsbut the recursion doesn' really occur (in factcircular may be better term here)--such imports won' get stuck in infinite importing loops stillbecause the statements in module may not all have been run when it imports another modulesome of its names may not yet exist if you use import to fetch the module as wholethis probably doesn' matterthe module' names won' be accessed until you later use qualification to fetch their valuesand by that time the module is likely complete but if you use from to fetch specific namesyou must bear in mind that you will only have access to names in that module that have already been assigned when recursive import is kicked off for instanceconsider the following modulesrecur and recur recur assigns name xand then imports recur before assigning the name at this pointrecur can fetch recur as whole with an import--it already exists in python' internal modules tablewhich makes it importableand also prevents the imports from looping but if recur uses fromit will be able to see only the name xthe name ywhich is assigned below the import in recur doesn' yet existso you get an errorrecur py module gotchas