缺少python 3 API函数

时间:2013-10-14 05:38:07

标签: python c python-3.x python-c-api

我正在编写一些工作代码,似乎python提供的一些C API函数不起作用。我主要尝试检查类型的函数,例如:

import ctypes
python33_dll = ctypes.CDLL('python33.dll')
a_float = python33_dll.PyFloat_FromDouble(ctypes.c_float(2.0))
python33_dll.PyFloat_Check(a_float)
Traceback (most recent call last):
  File "<pyshell#6>", line 1, in <module>
    python33_dll.PyFloat_Check(a_float)
  File "C:\Python33\lib\ctypes\__init__.py", line 366, in __getattr__
    func = self.__getitem__(name)
  File "C:\Python33\lib\ctypes\__init__.py", line 371, in __getitem__
    func = self._FuncPtr((name_or_ordinal, self))
AttributeError: function 'PyFloat_Check' not found

我需要做些什么来使用这个功能,还是一个bug?

docs.python.org/3.3/c-api/float.html?highlight=double#PyFloat_Check

1 个答案:

答案 0 :(得分:1)

PyFloat_Check()a macro。您需要手动展开它并调用正确的函数。