Есть ли какой-нибудь способ скомпилировать сценарий .py в .pyc, но только если он отсутствует или устарел в файле .py?
Я пытаюсь скомпилировать файл, если необходимо, а затем запустить его из Python, может ли exec() запустить файл .pyc?
import py_compile
py_compile.compile('Child.py')
exec(open('Child.py').read())
Это работает, но файл перекомпилируется при каждом запуске.
Далее комментария jsbueno — более подробный пример:
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")