首页 > 解决方案 > python multiprocessing.pool() OSError: [Errno 22] 无效参数

问题描述

我尝试运行此代码:

import numpy as np

import multiprocessing
from functools import partial

CPUS = multiprocessing.cpu_count() # Anzahl der CPUs/Threads: 4
anzahl = CPUS-1

WORKERS = multiprocessing.Pool(processes=anzahl)

我尝试在 3 台不同的计算机上运行它:在 2 台计算机上一切正常,但在 1 台计算机上出现以下回溯错误:

Traceback (most recent call last):

  File "<string>", line 1, in <module>

  File "L:\Python\lib\multiprocessing\spawn.py", line 116, in spawn_main
    exitcode = _main(fd, parent_sentinel)

  File "L:\Python\lib\multiprocessing\spawn.py", line 125, in _main
    prepare(preparation_data)

  File "L:\Python\lib\multiprocessing\spawn.py", line 236, in prepare
    _fixup_main_from_path(data['init_main_from_path'])

  File "L:\Python\lib\multiprocessing\spawn.py", line 287, in _fixup_main_from_path
    main_content = runpy.run_path(main_path,

  File "L:\Python\lib\runpy.py", line 264, in run_path
    code, fname = _get_code_from_file(run_name, path_name)

  File "L:\Python\lib\runpy.py", line 234, in _get_code_from_file
    with io.open_code(decoded_path) as f:

OSError: [Errno 22] Invalid argument: 'L:\\Python\\<input>'

我不知道如何解决这个问题。有人能帮我吗?我的 Python 版本:Python 3.8.3 (tags/v3.8.3:6f8c832, May 13 2020, 22:37:02) [MSC v.1924 64 bit (AMD64)] on win32

标签: python-3.x

解决方案


解决方法(在 PyCharm 2020.3.2 中测试)是__file__在实例化池之前将控制台变量更改为现有文件的名称


推荐阅读