python导入其它路径下的包其实很简单的,就原理来说,任何python启动后,其相关的程序包,会存放在当前进程中的sys.modules里面,所以要想把其它路径下的程序导入 python进程中调用,其实就是把其它路径下的程序包,导入到
当前进程的sys.modules里面,代码样例如下: test_imp.py
def load_modle():
import imp
import importlib
import sys
# import alarm.alarmfi.PM
sys.modules['test'] = importlib.import_module('test',
imp.load_package('test', '/opt/mytest/test'))
load_modle()
from test import tt
if __name__ == '__main__':
tt.test()
引用的样例包:
pwd
/opt/mytest/test
[root@controller1 test]# ll
total 12
-rw-r--r-- 1 root root 0 Feb 25 14:06 __init__.py
-rw-r--r-- 1 root root 115 Feb 25 14:09 __init__.pyc
-rw-r--r-- 1 root root 33 Feb 25 14:10 tt.py
-rw-r--r-- 1 root root 243 Feb 25 14:10 tt.pyc
tt.py:
def test():
print "hello test!"
~
~
~
命令行中调用输出结果:
[root@controller1 root]# python test_imp.py
hello test!