python – OverflowError:规范化的天数太大而无法放入C int

python – OverflowError:规范化的天数太大而无法放入C int,第1张

概述我使用以下 Python代码来计算用户系统时间. t = os.times()usersystime = t[0] + t[1]usersystime = datetime.timedelta(seconds=usersystime) 但是,在Amazon EC2 m.4xlarge实例上,偶尔会出现以下错误: OverflowError: normalized days too large 我使用以下 Python代码来计算用户系统时间.

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

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

OverflowError: normalized days too large to fit in a C int

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

我该如何解决?

解决方法 我发现Python的一些内置函数(如range或xrange)不支持更大的整数,可能是因为它们在C中实现为优化.看看 this question就是一个例子.

这可能是您的代码的情况. t [0] t [1]是否适合整数?如果没有,你将不得不找到解决方法(规范化t [0] t [1]?取决于你想做什么,你的片段不清楚)或实现你自己的timedelta.

编辑:

看一下Python的文档并在我的桌面上运行你的代码(WinXP 32bit / Python2.7),我看不出整数溢出的原因.但是,你提到偶尔会出现这个问题,因此它可能是亚马逊实例的时间()返回一些时髦的值(yay虚拟化;)).

首先,尝试进行一些测试以确定异常发生的t [0]和t [1]的确切范围.如果它们实际上确实有一些非常高的值(可能是因为实例暂停然后恢复,不知道有这么少的细节),你的代码测试反对.

总结

以上是内存溢出为你收集整理的python – OverflowError:规范化的天数太大而无法放入C int全部内容,希望文章能够帮你解决python – OverflowError:规范化的天数太大而无法放入C int所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1196435.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存