So I'm running into a problem where the try: except: mechanism doesn't seem to be working correctly in python.
Here are the contents of my two files.
pytest1.py
import pytest2
class MyError( Exception ):
    def __init__( self, value ):
        self.value = value
    def __str__( self ):
        return repr( self.value )
def func1():
    raise MyError( 'This is an error' )
def func3():
    pytest2.func2()
if __name__ == '__main__':
    try:
        func3()
    except MyError, e:
        print 'I should catch here.'
    except:
        print 'Why caught here?'
pytest2.py
from pytest1 import func1
def func2():
    func1()
Executing the first file yields the following output:
$ python pytest1.py
Why caught here?
Basically, the exception isn't being caught.  If I print out the exception type, it prints as <pytest1.MyError> instead of just <MyError>.  I imagine that this is some weird cyclical reference thing, but it still seems like it should work.