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所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)