【发布时间】:2022-08-10 04:22:05
【问题描述】:
我正在笔记本电脑上执行笔记本,但出现以下错误。
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
如您所见,错误发生在函数调用期间。函数本身不是问题,如果我在单元格内定义并运行它,它就可以正常工作。但是从它自己的模块中导入函数会导致这个错误。 我环顾四周寻找提示,我读过的所有论坛都指向安装多个 Python 的一些问题。 但是,我尝试使用新环境,同时使用 venv 和 conda,但我得到了同样的错误。其他机器上的相同代码可以工作,所以它似乎与我的特定安装有关,但我不知道如何修复它。我尝试重新安装 conda,制作新环境,升级 python。使用 Python 3.8、3.9 和 3.10 对此进行了迭代,我总是遇到同样的错误。非常欢迎任何帮助。
由于该函数来自先前使用dill 序列化的类,因此这个与莳萝相关的问题可能与https://github.com/uqfoundation/dill/issues/438 有关
-
您能否展示您为创建虚拟环境所做的所有步骤以及输出,以便更清楚您的情况。另外,您使用什么操作系统?
-
我只是使用
conda create -n myenv python=3.10更改 python 版本。我在 MacOS 11.6.7 上。你指的是哪个输出? -
我指的是你在终端中输入的每一个命令,从创建虚拟环境开始,到上面提到的 SystemError 结束。否则很难估计实际发生了什么或如何解决这个问题。
-
我创建了环境,然后在该环境中运行 jupyter notebook
conda activate myenv,然后是jupyter notebook。我运行笔记本的单元格,当调用gym.get_wallet()函数时出现发布的错误。问题是,错误与函数本身无关,而是涉及操作码的 SystemError。 -
如果这些确实是您执行的所有步骤,那么这就是问题的提示。据我所知,全新的 conda 环境没有预装
jupyter,所以如果你设法运行jupyter notebook而无需事先安装它,那么它很可能是指在你的恰好在PATH上的系统。您可以检查笔记本内的import sys; print(sys.executable)以验证它所指的内容。
标签: python opcode dill system-error