一种类型如何与自身不相容?

时间:2018-01-02 21:10:26

标签: python django ctypes

在我的django应用程序(Django 1.6.0,在Red Hat上运行的python 2.7.5)中,我的数据库驱动程序看到来自ctypes的错误:

  

TypeError:不兼容的类型,LP_c_int实例而不是LP_c_int实例

代码如下所示:

    is_null = value is None
    param.value.is_null = pointer(c_int(is_null)) <-- error occurs on this line

我对ctypes并不熟悉(我继承了这段代码)但从表面上看,这条错误信息毫无意义。代码已运行多年,但我现在看到这个错误到处都是。我做了一件明显不对的事吗?

感谢IljaEveilä的评论,这是一个最小的复制品:

from ctypes import *
from ctypes import _reset_cache

class DataValue(Structure):
    """Must match a_sqlany_data_value."""

    _fields_ = [("buffer",      POINTER(c_char)),
                ("buffer_size", c_size_t),
                ("length",      POINTER(c_size_t)),
                ("type",        c_int),
                ("is_null",     POINTER(c_int))]

d = DataValue()
_reset_cache()
is_null = False
d.is_null = pointer( c_int( is_null ) )

0 个答案:

没有答案