Расширенное описание проблемы в дополнение к различным комментариям в предыдущей теме. На этот раз я постарался внести ясность:
Ищу способ вызвать программный скрипт *.py из Python, одновременно сделав переменную родительского элемента доступной внутри него. Ну, на самом деле очень хочется его скомпилировать, сохранить байт-код и каждый раз запускать .pyc, чтобы снова и снова воссоздавать байт-код. Также пытаюсь сохранить файлы Child*.py в чистоте, чтобы не заключать их все в функцию.
Похоже, что exec не только не использует автоматически файл .pyc, но и вообще не может запускать файл .pyc.
Parent.py
def main():
class cParent:
test = "test"
oParent = cParent()
print("In parent 1")
import py_compile
py_compile.compile('Child1.py')
exec(open('Child1.py').read(), {}, {"oParent":oParent})
print("In parent 2")
Child1.py
print("In child 1")
print(oParent.test)
print("In child 2")