Python 多处理抛出操作系统错误,但仍然给出结果?

Python 多处理抛出操作系统错误,但仍然给出结果?,python,multiprocessing,Python,Multiprocessing,我正在尝试创建一个django应用程序,它将作为分析Castor EDC数据的中心。我目前正在开发一个函数,该函数将向服务器发出几个API请求,以提取数据进行分析,但我最初的代码非常慢。所以我现在尝试引入一些多处理,但是我对Python中使用的这个概念非常陌生,而不是R。我得到了一个错误,它似乎会一次又一次地重复,直到操作完成。奇怪的是,除了抛出这个操作系统错误之外,它似乎还能工作。你知道我能做些什么来解决这个问题吗 我确保目录中没有包含[a-z]或[0-9]以外字符的命名文件,Django设置

我正在尝试创建一个django应用程序,它将作为分析Castor EDC数据的中心。我目前正在开发一个函数,该函数将向服务器发出几个API请求,以提取数据进行分析,但我最初的代码非常慢。所以我现在尝试引入一些多处理,但是我对Python中使用的这个概念非常陌生,而不是R。我得到了一个错误,它似乎会一次又一次地重复,直到操作完成。奇怪的是,除了抛出这个操作系统错误之外,它似乎还能工作。你知道我能做些什么来解决这个问题吗

我确保目录中没有包含[a-z]或[0-9]以外字符的命名文件,Django设置中给出的字符除外。我认为我不应该删除它,因为它允许将文件视为模块?我还确保使用ifname='main',但仍然得到错误。也没有对具有奇怪名称的文件的引用

import requests
import pandas as pd
import ast
import multiprocessing as mp

def get_data(id,bearer):
   #Make API request from web server.

if __name__ == '__main__':
    with mp.Pool(4):
        c = get_data(id, bearer)


IDE反复打印以下内容,直到操作完成:

OSError: [Errno 22] Invalid argument: 'path\\<input>'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "C:\Python37\lib\multiprocessing\spawn.py", line 105, in spawn_main
  File "C:\Python37\lib\multiprocessing\spawn.py", line 105, in spawn_main
    exitcode = _main(fd)
  File "C:\Python37\lib\multiprocessing\spawn.py", line 114, in _main
    exitcode = _main(fd)
  File "C:\Python37\lib\multiprocessing\spawn.py", line 114, in _main
    prepare(preparation_data)    
prepare(preparation_data)  File "C:\Python37\lib\multiprocessing\spawn.py", line 225, in prepare
  File "C:\Python37\lib\multiprocessing\spawn.py", line 225, in prepare
        _fixup_main_from_path(data['init_main_from_path'])_fixup_main_from_path(data['init_main_from_path'])
  File "C:\Python37\lib\multiprocessing\spawn.py", line 277, in _fixup_main_from_path
  File "C:\Python37\lib\multiprocessing\spawn.py", line 277, in _fixup_main_from_path
    run_name="__mp_main__")
  File "C:\Python37\lib\runpy.py", line 261, in run_path
    run_name="__mp_main__")
  File "C:\Python37\lib\runpy.py", line 261, in run_path
    code, fname = _get_code_from_file(run_name, path_name)
  File "C:\Python37\lib\runpy.py", line 231, in _get_code_from_file
    code, fname = _get_code_from_file(run_name, path_name)
  File "C:\Python37\lib\runpy.py", line 231, in _get_code_from_file
    with open(fname, "rb") as f:

首先,没有调用多处理。您刚刚使用mp.pool(4)创建了具有4个cpu内核的池,但尚未使用它。有不同的方法,比如

map(),map_async(),apply(),apply_async(),starmap()

在mp.Pool()中,允许它进行多处理

查看以更好地了解mp.Pool()工作原理


关于这个错误,它没有找到一个有效的路径,因为它显示了很多错误。我无法从这个代码片段中复制代码。因此,请确保首先使用多处理,如果问题仍然存在,请对此进行注释

谢谢,我承认我没有花太多时间看文档。我重写了我的数据请求函数,并传递了一个URL列表,以使用您列出的map方法。
os.listdir()

['.idea', 'CTMS', 'dataAnalysis', 'db.sqlite3', 'fileManager', 'manage.py', '__init__.py']

I get my desired result except the above error code prints repeatedly.