python - "OverflowError: Python int too large to convert to C long"在 windows 但不是 mac

标签 python windows int long-integer

我在 windows 和 mac 上运行完全相同的代码,使用 python 3.5 64 位。

在 Windows 上,它看起来像这样:

>>> 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 上的代码提供解决方案吗?非常感谢!

最佳答案

一旦你的数字大于 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

您可以通过检查来确认:

>>> import sys
>>> sys.maxsize
2147483647

要获取更高精度的数字,请不要传递在后台使用有界 C 整数的 int 类型。使用默认 float :

>>> preds = np.zeros((1, 3))

关于python - "OverflowError: Python int too large to convert to C long"在 windows 但不是 mac,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38314118/

相关文章:

python - 在 python 中创建小型数据库的最佳做法是什么?

windows - 如何从 Windows 命令行运行 Maxima

c# - 获取十进制数的整数部分的最佳方法

python - Python Selenium 中的 Chrome 选项 : Disable GPU vs Headless

python - 如何根据 PEP8 使用 % 参数格式化此字符串

windows - 两个页面条目引用同一个物理页面

windows - Mingw FFTW3 找不到库/头文件

php - 在php中将从MySQL查询获得的string/val转换为int?

sql-server - 带有 INT 和单个连字符 (-) 的奇怪 CAST 行为

Python线程,线程不关闭