Похоже, вы не можете использовать exec в функции, которая имеет подфункцию...
Кто-нибудь знает, почему этот код Python не работает? Я получаю сообщение об ошибке в exec в test2. Кроме того, я знаю, что exec не очень хороший стиль, но поверьте мне, я использую exec для соответствующей причины. Я бы не использовал его в противном случае.
#!/usr/bin/env python
#
def test1():
exec('print "hi from test1"')
test1()
def test2():
"""Test with a subfunction."""
exec('print "hi from test2"')
def subfunction():
return True
test2()
EDIT: я сузил ошибку до функции в подфункции. Это не имеет никакого отношения к ключевому слову raise.