在按计划调用多处理功能时,它适用于MacOS,但不适用于Windows。我想念什么?

时间:2019-05-13 09:35:57

标签: python windows macos python-multiprocessing

我正在尝试使用包含多处理程序的计划表在Python中计划一些批处理过程。他们一直挂着,所以我写了一个较小的测试工作来进行良好的测试。但是,我在Mac上编写了它,并且效果很好,但是当我尝试在工作PC上运行它时,它就挂了。当我只运行组成部分时,它们都可以在两个系统上完美运行。

所有Python 3.7,Mac是Sierra,PC是Windows 10 Pro

''' This is the test process to schedule (saved as mp_lib) '''

import pandas as pd
import numpy as np
from multiprocessing import Pool

def parallelise(df, func):
    df_split = np.array_split(df, 2)
    pool = Pool(2)
    df = pd.concat(pool.map(func, df_split))
    pool.close()
    pool.join()
    return df

def parallel_func(df):
    df['Three'] = df['One'] + df['Two']
    return df

def run_job():
    df = pd.DataFrame([[1,2],[3,4],[5,6],[7,8]], columns=['One', 'Two'])
    df2 = parallelise(df, parallel_func)
    print(df2)


''' This is the scheduler '''

import schedule
import time
import mp_lib as mpl

def main():
    schedule.every(10).seconds.do(mpl.run_job)
    while True:
        schedule.run_pending()
        time.sleep(1)

if __name__ == "__main__":
    main()

期望控制台在Mac上每10秒输出一次基本数学运算。在Windows中,控制台处于静默状态,但是任务管理器显示活动的Python会话。

0 个答案:

没有答案