我有一个dll
和一个c
头文件.h
。有些函数接受c
enum
,例如;
enum Type
{
typeA,
typeB
};
和一个功能
bool printType(Type type );
现在我想从python脚本中使用dll
的这个函数。我导入了这个库。它很成功。我可以访问其他功能,它的工作原理。所以有一个功能就像我上面给出的例子一样,它以Enum
作为参数。
在此处查看其他帖子以及互联网上的其他内容后我尝试了什么;
# -*- coding: utf-8 -*-
from ctypes import *
from enum import IntEnum
class CtypesEnum(IntEnum):
@classmethod
def from_param(cls, obj):
return int(obj)
class Type(CtypesEnum):
typeA = 0
typeB = 1
我曾经这样用过它。
setEnumtype = self.printType
setEnumtype.argtypes = [Type]
setEnumVale.restype = c.c_int
result = self.printType(setEnumtype.typeA)
口译员说,它知道IntEnum
。我已经通过pip安装了enum
。
还有其他直接的方法吗?
回溯:
from enum import IntEnum
ImportError: cannot Import Name IntEnum
答案 0 :(得分:1)
如果您阅读the enum docs on pip,您会看到:
Python 3现在在其标准库中有一个enum实现(也可用于旧的Python版本作为第三方flufl.enum发行版),它取代了这个库。
你真的想要enum34。