Похоже, вы не можете использовать exec в функции, у которой есть подфункция ...
Кто-нибудь знает, почему этот код Python не работает? Я получаю сообщение об ошибке при выполнении в 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()
РЕДАКТИРОВАТЬ: Я сузил ошибку до наличия функции в подфункции. Это не имеет ничего общего с ключевым словом Raise.