Windows下 jupyter notebook 运行multiprocessing 报错的问题与解决方法
文章目录
- 测试用的代码
- 错误
- 解决方法
测试用的代码
下面每一个对应一个jupyter notebook的单元格
import time
from multiprocessing import Process, Queue
def generator():c = 0while True:time.sleep(1.0) # read somethingyield cc += 1
%%timeds = generator()
for i in range(3):item = next(ds)time.sleep(1.0) # do somethingprint(item)
0
1
2
CPU times: user 3.27 ms, sys: 456 µs, total: 3.73 ms
Wall time: 6.01 s
def kernel(func, q: Queue):ds = func()while True:item = next(ds)q.put(item)
def multi_generator(func):q = Queue()p = Process(target=kernel, args=(func, q))p.start()while True:item = q.get()yield item
在windows下运行这个单元格的话,会一直显示在运行,
%%timeds = multi_generator(generator)
for i in range(3):item = next(ds)time.sleep(1.0)print(item)
错误
运行上面的代码,后台会报如下错
Traceback (most recent call last):File "<string>", line 1, in <module>File "D:\Anaconda\envs\AIE31\lib\multiprocessing\spawn.py", line 105, in spawn_mainexitcode = _main(fd)File "D:\Anaconda\envs\AIE31\lib\multiprocessing\spawn.py", line 115, in _mainself = reduction.pickle.load(from_parent)
AttributeError: Can't get attribute 'kernel' on <module '__main__' (built-in)>
解决方法
1、些处解决方案,是利用Windows 10 下的WSL的Linux系统解决的。
怎样配置WSL,请参考链接https://blog.csdn.net/jasneik/article/details/123782018
直接打开Ubuntu 控制台,运行jupyter notebook,一般不会像Windows下的会自动跳转,可以把jupyter notebook含token的链接拷贝到浏览器打开。类似如下的链接
然后把上面的代码拷,再运行,就OK了。
%%timeds = multi_generator(generator)
for i in range(3):item = next(ds)time.sleep(1.0)print(item)
0
1
2
CPU times: user 9.26 ms, sys: 1.38 ms, total: 10.6 ms
Wall time: 4.06 s
2、可以参考此方面,是把方法写到临时文件(我没有试过)
https://blog.csdn.net/e274794140/article/details/87286190
Windows下 jupyter notebook 运行multiprocessing 报错的问题与解决方法相关推荐
- windows下 python 使用 pip 安装TA-Lib报错的原因及解决方法
windows下 python 使用 pip 安装TA-Lib报错的原因及解决方法 问题环境 问题描述 问题原因 & 解决办法 问题环境 Windows 10 x64 .python 3.8. ...
- Windows net start mysql 启动MySQL服务报错 发生系统错误 5 解决方法
net start mysql 启动MySQL服务报错 发生系统错误 5 解决方法 1-错误详情 2-单次解决方法 2.1-目录 C:WindowsSystem32 -> 找到 cmd.exe ...
- mysql source导入报错ERROR 1366的解决方法
mysql source导入报错ERROR 1366的解决方法 参考文章: (1)mysql source导入报错ERROR 1366的解决方法 (2)https://www.cnblogs.com/ ...
- Python 报错 SyntaxError: invalid syntax 解决方法
Python 报错 SyntaxError: invalid syntax 解决方法 参考文章: (1)Python 报错 SyntaxError: invalid syntax 解决方法 (2)ht ...
- vue 报错unknown custom element解决方法
vue 报错unknown custom element解决方法 参考文章: (1)vue 报错unknown custom element解决方法 (2)https://www.cnblogs.co ...
- sqlyog for MySQL远程连接的时候报错mysql 1130的解决方法
通过Navicat for MySQL远程连接的时候报错mysql 1130的解决方法 今天在用远程连接Mysql服务器的数据库,不管怎么弄都是连接不到. 错误代码是1130,ERROR 1130: ...
- VMware报错“锁定文件失败“解决方法
VMware报错"锁定文件失败"解决方法 参考文章: (1)VMware报错"锁定文件失败"解决方法 (2)https://www.cnblogs.com/cb ...
- canvas生成图片toDataURL报错的原因和解决方法
canvas生成图片toDataURL报错的原因和解决方法 参考文章: (1)canvas生成图片toDataURL报错的原因和解决方法 (2)https://www.cnblogs.com/suna ...
- uni-app真机调试报错request:fail abort解决方法
uni-app真机调试报错request:fail abort解决方法 参考文章: (1)uni-app真机调试报错request:fail abort解决方法 (2)https://www.cnbl ...
最新文章
- 一个事务中 可以查询自己未提交的数据吗_数据库事务的方方面面
- 同一MODBUS读写多(两)个BH32角度传感器
- CSS3 实用技巧:制作三角形
- 多线程-threading和进程VS线程(python 版)
- 微信小程序 获取OpenId
- 算法题存档20190206
- 说说中国的图书出版业者-读《小学奥数举一反三(5年级A版)》和《2010注册建筑师建筑结构考试强化模拟试题集》有感...
- python-31:然而我发现结果并不是我想要的
- JavaScript 取得当前页面的URL网址参数
- mysql sum 删除_如果mysql磁盘满了,会发生什么?还真被我遇到了~
- notepad2正则表达式替换字符串
- Win10系统定时开关机
- 64位MicrosoftOfficeWord加载EndnoteX7
- JavaCV入门教程目录(JavaCV从入门到实战,JavaCV指南手册,免费JavaCV教程)
- 大数据第三季--sqoop(day1)-徐培成-专题视频课程
- python 等频分箱_数据分箱:等频分箱,等距分箱,卡方分箱,计算WOE、IV
- 你会用PPT中的图片占位符吗?超级好用,不错的技能
- 常用手机尺寸以及分辨率
- GitHub上真的有超过4000万软件开发人员吗?差远了!
- 对话绿盟科技丨云原生安全研究与实践