Reputation: 20856
I have 2 modules
mexec1.py
def exec1func():
print 'exec1'
exec 'c:/python27/exec2.py'
if __name__ == '__main__':
exec1func()
exec2.py
def exec2func(parm=''):
print 'exec2 parm',parm
if __name__ == '__main__':
exec2func(parm='')
From exec1.py I want to call exec2func of the exec2.py using only exec or execfile...I don't want subprocess.Popen..
Upvotes: 0
Views: 90
Reputation: 43024
It would be better to make it a module and import it. If you need dynamic imports use importlib.
mod = importlib.import_module("exec2", package=None)
mod.exec2func()
Upvotes: 0
Reputation: 179452
Use import
instead:
def exec1func():
from exec2 import exec2func
exec2func()
If you want to import using the full path, use imp.load_source
:
import imp
def exec1func():
exec2 = imp.load_source('exec2', 'c:/python27/exec2.py')
exec2.exec2func()
Upvotes: 2