我有一个直到今天都可以进行多处理的脚本。为了重现这个问题,我简化了与下面显示的函数并行化的函数:
from multiprocessing import Process, Queue
import random
def rand_num():
num = random.random()
print(num)
if __name__ == "__main__":
queue = Queue()
processes = [Process(target=rand_num, args=()) for x in range(4)]
for p in processes:
p.start()
for p in processes:
p.join()
Run Code Online (Sandbox Code Playgroud)
呈现完全相同的错误消息(重复 4 次,为了可读性我省略了重复):
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/usr/local/Cellar/python@3.8/3.8.1/Frameworks/Python.framework/Versions/3.8/lib/python3.8/multiprocessing/spawn.py", line 116, in spawn_main
exitcode = _main(fd, parent_sentinel)
File "/usr/local/Cellar/python@3.8/3.8.1/Frameworks/Python.framework/Versions/3.8/lib/python3.8/multiprocessing/spawn.py", line 125, in _main
prepare(preparation_data)
File "/usr/local/Cellar/python@3.8/3.8.1/Frameworks/Python.framework/Versions/3.8/lib/python3.8/multiprocessing/spawn.py", line 236, in prepare
_fixup_main_from_path(data['init_main_from_path'])
File "/usr/local/Cellar/python@3.8/3.8.1/Frameworks/Python.framework/Versions/3.8/lib/python3.8/multiprocessing/spawn.py", line …Run Code Online (Sandbox Code Playgroud) 我有一些数据,我正在尝试使用以下方法拟合幂律曲线:
z <- nls(y ~ a*x^b+c, start = list(a=1, b=1))
Run Code Online (Sandbox Code Playgroud)
但是,我不断收到以下错误消息:
*x ^ b + c中的错误:二元运算符的非数字参数
(较短的版本即y ~ a*x^b+c工作正常,但我需要免费的术语c).
有任何想法吗 ?