gpt4 book ai didi

python - 溢出错误 : normalized days too large to fit in a C int

转载 作者:太空宇宙 更新时间:2023-11-03 11:57:15 25 4
gpt4 key购买 nike

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

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 的内置函数,例如 rangexrange 不支持更大的整数,可能是因为它们是在C 作为优化。看看this question举个例子。

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

编辑:

查看 Python 的文档并在我的桌面(WinXP 32 位/Python2.7)上运行您的代码,我看不出整数溢出的原因。但是,您提到此问题偶尔会发生,因此可能是 Amazon 实例的 times() 返回了一些古怪的值(是的虚拟化 ;))。

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

关于python - 溢出错误 : normalized days too large to fit in a C int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4663817/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com