草庐IT

Python3 : ImportError: No module named '_ctypes' when using Value from module multiprocessing

我正在使用Ubuntu并安装了Python2.7.5和3.4.0。在Python2.7.5中,我能够成功地分配一个变量x=Value('i',2),但在3.4.0中却不行。我得到:Traceback(mostrecentcalllast):File"",line1,inFile"/usr/local/lib/python3.4/multiprocessing/context.py",line132,inValuefrom.sharedctypesimportValueFile"/usr/local/lib/python3.4/multiprocessing/sharedctypes.p

Python3 : ImportError: No module named '_ctypes' when using Value from module multiprocessing

我正在使用Ubuntu并安装了Python2.7.5和3.4.0。在Python2.7.5中,我能够成功地分配一个变量x=Value('i',2),但在3.4.0中却不行。我得到:Traceback(mostrecentcalllast):File"",line1,inFile"/usr/local/lib/python3.4/multiprocessing/context.py",line132,inValuefrom.sharedctypesimportValueFile"/usr/local/lib/python3.4/multiprocessing/sharedctypes.p

Python:垃圾收集器行为与 ctypes

假设我的C/C++代码分配了一些内存,并返回指向它的指针。#include#ifdef__cplusplusextern"C"{#endifvoidAllocate(void**p){intN=2048;*p=malloc(N);}#ifdef__cplusplus}#endif显然,我希望释放那block内存是我的责任。现在假设我将它编译成一个共享库并使用ctypes从Python中调用它,但没有显式释放该内存。importctypesfromctypesimportcdll,Structure,byrefexternal_lib=cdll.LoadLibrary('libtest.

python - 从 ctypes 数组中获取数据到 numpy

我正在使用Python(通过ctypes)包装的C库来运行一系列计算。在运行的不同阶段,我想将数据输入Python,特别是numpy数组。我使用的包装对数组数据有两种不同类型的返回(我特别感兴趣):ctypes数组:当我做type(x)(其中x是ctypes数组,我得到作为返回。我知道该数据是文档中内部数据的副本,我可以轻松地将其放入numpy数组中:>>>np.ctypeslib.as_array(x)这将返回一维numpy数据数组。ctype指向数据的指针:在这种情况下,从库的文档中,我了解到我正在获取指向存储并直接用于库的数据的指针。乳清我做type(y)(其中y是指针)我得到.

windows - 在 python 2.7 ctypes 中构建 UCS4 字符串缓冲区

尝试使用ctypes在纯python中重新创建_winapi.c(directlink)的getenvironment(..)C函数>,我想知道如何翻译以下C代码:buffer=PyMem_NEW(Py_UCS4,totalsize);if(!buffer){PyErr_NoMemory();gotoerror;}p=buffer;end=buffer+totalsize;for(i=0;i似乎函数ctypes.create_unicode_buffer(..)(doc,code)正在做一些非常接近的事情,如果我可以访问Py_UCS4C类型或确保它与python可通过ctypes访问的

c++ - Python ctypes 回调函数到 SWIG

我有一个需要函数指针(WNDPROC)的SWIGC++函数,并想给它一个已被ctypes.WINFUNCTYPE包装的Python函数。在我看来,这应该是兼容的,但是SWIG的类型检查会抛出异常,因为它不知道ctypes.WINFUNCTYPE类型实际上是一个WNDPROC。我该怎么做才能将我的回调传递给SWIG以便它理解它? 最佳答案 我没有Windows机器来真正检查这个,但我认为你需要创建一个类型映射来告诉swig如何将PyObject包装器转换为WNDPROC://assumingthewrappedobjecthasana

python - 如何使用 ctypes 将 python 列表传递给 C 函数 (dll)

背景我有一些Python分析软件,我必须传递一个4096字节的列表(看起来像这样[80,56,49,50,229,55,55,0,77,......])到dll,以便dll将其写入设备。要写入的字节存储在变量名data中必须从python调用的c函数(在dll中)是int_DLL_BUILD_IO_DataWrite(HANDLEhDevice,unsignedchar*p_pBuff,unsignedcharp_nByteCntInBuff);我无权访问dll代码尝试过的方法我试图声明一个数据类型data_tx=(ctypes.c_uint8*len(data))(*data)并调用

python - 如何在 python 中使用 ctypes 获取 Windows 窗口名称

我尝试通过具有长对象的句柄获取Windows窗口标题名称和pids。我的代码有效,但有问题。当我应该得到10个或更多时,我只得到4个窗口标题。任何人都可以帮助并告诉我如何修复此代码吗?我认为问题在于我如何转换长对象(我不太了解它们,以及一般的ctypes)。from__future__importprint_functionfromctypesimport*psapi=windll.psapititles=[]#getwindowtitlefrompiddefgwtfp():max_array=c_ulong*4096pProcessIds=max_array()pBytesRetur

python - ctypes中的编译器依赖

我有一个第三方闭源库,它是用visualstudio2010构建的windowsdll。首先,我计划使用例如为该dll构建一个扩展模块。痛饮。然而,它是用VS2010构建的,而所有python2发行版都是用VS2008构建的,这破坏了这一事实。现在ctypes好像没有这个限制了。我使用VS2010构建了一个简单的dll(dependencywalker显示dll链接到msvcr100.dll),其功能为:intfnTestLib2(inta,intb){returna+b;}将其加载到ctypes中并fcn=mydll.fnTestLib2fcn.argtypes=[ctypes.c_

Python ctypes 和没有足够的参数(缺少 4 个字节)

我要调用的函数是:voidFormatError(HRESULThrError,PCHARpszText);使用windll从自定义dll。c_p=c_char_p()windll.thedll.FormatError(errcode,c_p)结果:ValueError:Procedureprobablycalledwithnotenougharguments(4bytesmissing)改为使用cdll将字节丢失计数器增加到12。上面的错误代码是从同一dll的另一个函数返回的错误代码。如何正确接听电话? 最佳答案 至少,如果您正确