Python调用dill序列化类触发SystemError: unknown opcode报错
Jupyter Notebook运行报错:
SystemError: unknown opcode 报错信息
本地运行Jupyter Notebook时触发如下报错:
XXX lineno: 17, opcode: 120 --------------------------------------------------------------------------- SystemError Traceback (most recent call last) Input In [3], in <cell line: 3>() 1 gym = Gym(0, 0, 0, 0).from_dill(BACKUP) 2 ticker = gym.api.returnTicker() ----> 3 gym.wallet = gym.get_wallet() 4 plot_donut_gym_wallet(gym) 5 plot_donut_gym_wallet_makers(gym) File <ipython-input-3-1c4842a503bf>:17, in get_wallet(self) SystemError: unknown opcode
已确认的现象
- 错误触发于反序列化对象的方法调用环节
- 直接在Notebook单元格内定义并运行同名同逻辑函数可正常执行,从函数所属模块导入后调用就会触发该错误
- 同一份代码在其他设备上可正常运行,判定问题和本地特殊环境配置有关
已尝试的排查操作
- 参考技术论坛给出的「多Python安装版本冲突」结论,先后通过venv、conda新建全新虚拟环境测试,问题仍复现
- 重装conda、升级Python,分别在Python 3.8、3.9、3.10版本下测试,均复现相同错误
初步怀疑方向
出问题的函数所属类是此前通过dill序列化存储的,怀疑该问题和dill的已知issue相关,对应记录为dill官方仓库#438,现寻求可行的问题定位与修复思路。
内容的提问来源于stack exchange,提问作者alec_djinn
相关产品推荐
相关产品推荐

