Windows上的PyPy6.0.0中的“ OverflowError:int太大,无法转换为int”

时间:2018-10-05 17:46:50

标签: python python-3.5 pypy

前言

有一个标准的 Python 实现,称为CPython。但这不是唯一的方法,目前我正在使用名为PyPy的替代实现。

问题

在Windows 10 x64 上的 Python3.5 PyPy CPython 实现的行为中,我有一个奇怪的不一致之处>下一个代码段(感谢@Gabriel,完整示例)

>>> from itertools import repeat
>>> repeat(None, 2**31)

它在 CPython 中给出

repeat(None, 2147483648)

PyPy 中时,它以错误消息结尾并出现错误消息

Traceback (most recent call last):
  File "<input>", line 1, in <module>
OverflowError: int too large to convert to int

但是当我尝试在 Docker 容器内的 PyPy 中执行此代码段

docker run -it pypy:3-6

它可以正常运行,作为 CPython 版本。

我知道 Windows 版本处于beta阶段,但是没有人能解释它为什么如此运行以及该错误消息表示什么(或应该说什么)吗?

更新

对于 CPython ,但是下一条语句

>>> repeat(None, 2**63)

给予

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OverflowError: Python int too large to convert to C ssize_t

这些错误是否与某种原因相关?

0 个答案:

没有答案