我有两个模块,我需要从另一个模块导入。在第一个模块中,我只需要声明变量和加载(如果未加载)。第二,只需读取此变量并使用它(如果未加载,则在另一个模块中加载它)
第一个模块:
run_engine.py:
#run_engine.py
import matlab
eng = None
if(eng == None):
eng = matlab.engine.start_matlab()
start.py:
#!/usr/bin/python
import matlab.engine
import os
import run_engine
def app():
currentDir = os.path.dirname(os.path.abspath(__file__))
matlabInstance = run_engine.eng
matlabInstance.addpath(currentDir)
matlabInstance.sim('thermo_simple')
if __name__ == '__main__':
app()
matlab.engine.start_matlab需要大约30秒才能启动,而且我正在重复使用start.py,所以我只需要一个eng实例,但是加载正确。我怎样才能做到这一点?
答案 0 :(得分:0)
在交互式python shell中重复运行app()
:
$ python -i start.py
>>> app()
答案 1 :(得分:0)
#run_engine.py
import matlab
import time
eng = None
while not eng:
eng = matlab.engine.start_matlab()
time.sleep(1)
顺便说一句 - 如果你想使用"如果X ==无" - 这应该作为
if X is None
这是一个优选的Python习语;)