在此下游,我收到错误Python int too large to convert to C long
,这让我怀疑某种程度上ctypes太长了 - 大小4而不是8。
我对此进行了测试,确实如此。然而,我使用的是Python 2.7 64位(Anaconda)。
import ctypes as C
import os
import platform
import numpy as np
print "Python Platform Architecture: ", platform.architecture()[0]
print "Size of ctypes long: ", (C.sizeof(C.c_long))
这是输出:
Python Platform Architecture: 64bit
Size of ctypes long: 4
答案 0 :(得分:6)
仅保证long
至少为32位宽,因此在某些系统上,ctypes.c_long
仅为32位。特别是,我相信在64位Windows上,ctypes.c_long
只有32位宽。如果必须为64位宽,请改用ctypes.c_int64
。