Multiprocesamiento Python en Windows 10

Estoy ejecutando algo de código tanto en una PC con Windows 7 como en una computadora portátil con Windows 10:

def project(filename): **Do Something Here** if __name__ == '__main__': pool = Pool(processes=4) results = [pool.apply_async(project, args=(filename,)) for filename in filenamelist] output = [p.get() for p in results] print output 

Ambas computadoras son de doble núcleo / 4 hilos, por lo que deberían estar bien ejecutando 4 procesos. El problema que tengo es que cuando ejecuto el código en Windows 10 obtengo 4 procesos de Python en ejecución, pero usan el 0% de la CPU y no emitirán nada, a diferencia de la PC con Windows 7 que se ejecutará a pleno uso en los 4 Hilos y funcionan perfectamente.

El código funciona bien en la computadora portátil con Windows 10 si no uso el multiprocesamiento, por lo que el problema debe estar relacionado con eso. ¿El multiprocesamiento con Python no funciona en Windows 10 todavía? Estoy ejecutando Python 2.7 en ambas máquinas por cierto.

[Editar]: el procesador de PC con Windows 7 es un i5-650, el procesador de computadora portátil con Windows 10 es un i3-2370M

[Actualización]: revertí la computadora portátil a Windows 8.1 y el mismo código se ejecuta exactamente como estaba previsto, este es definitivamente un problema de Windows 10.

[Editar]: El método que estoy usando para generar la lista de filenamelist es el siguiente, sin embargo, esto funciona bien en Windows 7.

 def get_unfinished_files(indir, outdir): filenamelist = [] for filename in os.listdir(indir): if filename not in os.listdir(outdir) and filename.endswith('.png'): filenamelist.append(filename) return filenamelist 

Tenía un problema similar. Como descubrí, en mi caso solo era un error en Python: https://bugs.python.org/issue35797

Ocurre cuando se usa multiprocesamiento a través de venv .

Bugfix se lanza en Python 3.7.3.