“OverflowError: Python int too large to convert to C long"在 windows 上但不是 mac
- 作者: 叫我女王赐你无限辉煌
- 来源: 51数据库
- 2023-01-30
问题描述
我在 windows 和 mac 上运行完全相同的代码,使用 python 3.5 64 位.
I am running the exact same code on both windows and mac, with python 3.5 64 bit.
在 Windows 上,它看起来像这样:
On windows, it looks like this:
>>> import numpy as np
>>> preds = np.zeros((1, 3), dtype=int)
>>> p = [6802256107, 5017549029, 3745804973]
>>> preds[0] = p
Traceback (most recent call last):
File "<pyshell#13>", line 1, in <module>
preds[0] = p
OverflowError: Python int too large to convert to C long
但是,这段代码在我的 mac 上运行良好.任何人都可以帮助解释原因或为 Windows 上的代码提供解决方案吗?非常感谢!
However, this code works fine on my mac. Could anyone help explain why or give a solution for the code on windows? Thanks so much!
推荐答案
一旦你的数字大于 sys.maxsize,你就会得到这个错误:
You'll get that error once your numbers are greater than sys.maxsize:
>>> p = [sys.maxsize] >>> preds[0] = p >>> p = [sys.maxsize+1] >>> preds[0] = p Traceback (most recent call last): File "<stdin>", line 1, in <module> OverflowError: Python int too large to convert to C long
您可以通过检查来确认:
You can confirm this by checking:
>>> import sys >>> sys.maxsize 2147483647
要获取更高精度的数字,请不要传递在后台使用有界 C 整数的 int 类型.使用默认浮点数:
To take numbers with larger precision, don't pass an int type which uses a bounded C integer behind the scenes. Use the default float:
>>> preds = np.zeros((1, 3))
推荐阅读
热点文章
Discord.py(重写)on_member_update 无法正常工作
0
Discord.py 在 vc 中获取用户分钟数
0
discord.py 重写 |为我的命令出错
0
Discord.py rewrite 如何 DM 命令?
0
播放音频时,最后一部分被切断.如何解决这个问题?(discord.py)
0
在消息删除消息 Discord.py
0
如何使 discord.py 机器人私人/直接消息不是作者的人?
0
(Discord.py) 如何获取整个嵌入内容?
0
Discord bot 尽管获得了许可,但不能提及所有人
0
Discord.py discord.NotFound 异常
0
