为什么我的ctypes长度为4而不是使用64位python的大小为8?

时间:2015-02-13 01:24:17

标签: python ctypes anaconda

在此下游,我收到错误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

1 个答案:

答案 0 :(得分:6)

仅保证long至少为32位宽,因此在某些系统上,ctypes.c_long仅为32位。特别是,我相信在64位Windows上,ctypes.c_long只有32位宽。如果必须为64位宽,请改用ctypes.c_int64