在多处理模块中为每个进程重新加载Python模块

er0*_*er0 11 python python-module python-multiprocessing

有没有办法在使用Python的多处理模块创建的进程中加载​​模块的每个进程副本?我试过这个:

def my_fn(process_args):
    import my_module
    my_func()
Run Code Online (Sandbox Code Playgroud)

...但my_module中的子导入会一劳永逸地加载和缓存.特别是,其中一个子导入读取一个配置文件,其值根据第一个进程的环境设置.如果我试试这个:

def my_fn(process_args):
    try:
        my_module = reload(my_module)
    except NameError:
        import my_module
Run Code Online (Sandbox Code Playgroud)

... my_module的子导入不会重新加载.

sto*_*vfl 0

将函数放入 中my_module,例如:

def my_realod():
try:
    my_sub_module = reload(my_sub_module)
except NameError:
    import my_sub_module  
Run Code Online (Sandbox Code Playgroud)

my_reload像这样 调用:

def my_fn(process_args):
try:
    my_module = reload(my_module)
    my_module.my_reload()

except NameError:
    import my_module
Run Code Online (Sandbox Code Playgroud)