溢出错误:标准化天数过大,无法适应C。

2024-10-01 15:41:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用下面的Python代码来计算User+Sys时间。在

t = os.times()
usersystime = t[0] + t[1]
usersystime = datetime.timedelta(seconds=usersystime)

但是,在Amazon EC2 m.4xlarge实例上,我偶尔会遇到以下错误:

^{pr2}$

我已经使用这个Python代码一年多了,没有问题。现在,在这一种类型的amazonec2实例上(我以前从未使用过),我得到了这个错误。在

我怎么解决它?在


Tags: 实例代码amazondatetimeos错误sys时间
1条回答
网友
1楼 · 发布于 2024-10-01 15:41:06

我发现Python的一些内置函数,比如range或{},不支持较大的整数,这可能是因为它们是作为一种优化在C中实现的。以this question为例。在

你的代码可能就是这样。t[0] + t[1]是否适合整数?如果没有,您就必须找到一种方法来绕过它(normalizet[0] + t[1]?这取决于您想做什么,而您的代码片段并没有说明这一点)或实现您自己的timedelta。在

编辑:

看看Python的文档并在我的桌面上运行代码(winxp32bit/Python2.7),我认为没有理由出现整数溢出。但是,您提到这个问题偶尔会发生,因此可能是Amazon实例的times()返回一些奇怪的值(yay virtualization;)。在

首先,尝试做一些测试来确定异常发生的范围。如果它们确实有一些非常高的值(可能是因为实例被暂停然后又恢复了,不知道有这么小的细节),那么您的代码将对此进行测试。在

相关问题 更多 >

    热门问题