Python 3.5中的错误? list(globals()。items())导致RuntimeError:字典在迭代期间改变了大小

时间:2018-04-18 15:22:43

标签: python python-3.x python-3.5 gil

这是我得到的追溯的一部分。我不知道怎么可能。

没有多线程(我认为)。但即使有一个正在改变gloabls()的帖子,是否可以在列表创建期间更改globals() ?我认为list()来电是受GIL保护的,不是吗?

我复制了两次,但现在我无法复制它。

你有什么想法可能吗?

源代码:https://github.com/python/cpython/blob/3.5/Lib/lib2to3/pgen2/token.py#L73

Python 3.5.2,CentOS Linux版本7.4.1708

from past.builtins import basestring
  File "/home/user/app/lib64/python3.5/site-packages/past/__init__.py", line 88, in <module>
from past.translation import install_hooks as autotranslate
  File "/home/user/app/lib64/python3.5/site-packages/past/translation/__init__.py", line 41, in <module>
from lib2to3.pgen2.parse import ParseError
  File "/usr/lib64/python3.5/lib2to3/pgen2/parse.py", line 14, in <module>
from . import token
  File "/usr/lib64/python3.5/lib2to3/pgen2/token.py", line 73, in <module>
for _name, _value in list(globals().items()):
RuntimeError: dictionary changed size during iteration

0 个答案:

没有答案