Python在新线程/进程中新导入外部模块(f2py)?
我使用一个外部模块,该模块由一个带有f2py的fortran模块创建,其中包含一个我反复运行的函数 底层fortran(我无法控制)有点挑剔,有时会出现跟踪已分配数组的问题。当这种情况发生时,下一次调用该函数时会出现分段错误,导致整个python会话崩溃 但是,我可以在出现此问题时进行诊断,即我知道下次调用函数时它是否会崩溃。我想知道在这一点上是否有一种方法可以“全新”导入f2py模块 我希望有一种方法可以将一个外部模块加载到一个单独的线程或进程中,以后可以终止并重新启动 我在想象这样的事情:Python在新线程/进程中新导入外部模块(f2py)?,python,subprocess,python-import,python-multiprocessing,f2py,Python,Subprocess,Python Import,Python Multiprocessing,F2py,我使用一个外部模块,该模块由一个带有f2py的fortran模块创建,其中包含一个我反复运行的函数 底层fortran(我无法控制)有点挑剔,有时会出现跟踪已分配数组的问题。当这种情况发生时,下一次调用该函数时会出现分段错误,导致整个python会话崩溃 但是,我可以在出现此问题时进行诊断,即我知道下次调用函数时它是否会崩溃。我想知道在这一点上是否有一种方法可以“全新”导入f2py模块 我希望有一种方法可以将一个外部模块加载到一个单独的线程或进程中,以后可以终止并重新启动 我在想象这样的事情:
def funcwrapper():
newprocess=start_new_process()#以某种方式启动一个新流程
运行('import f2py#u module')#将f2py模块导入新流程
newprocess.run('result=f2py_module.func()')#运行函数
result=newprocess.retrieve('result')#以某种方式将结果返回主进程
newprocess.terminate()#终止新进程
返回结果
我觉得多处理或线程应该可以做到这一点,但我没有太多的经验