PyDAQmx.Task() 引发 RecursionError

PyDAQmx.Task() reises RecursionError

简单代码:

from PyDAQmx import Task
task = Task()

加注:

<...>
File "C:\Users\Adrian\Anaconda3\lib\site-packages\PyDAQmx\DAQmxFunctions.py", line 28, in mafunction
    DAQmxGetExtendedErrorInfo(errBuff,2048)
ctypes.ArgumentError: argument 1: <class 'RecursionError'>: maximum recursion depth exceeded while calling a Python object

函数错误:

def catch_error_default(f):
    def mafunction(*arg):
        error = f(*arg)
        if error<0:
            errBuff = create_string_buffer(2048)
            DAQmxGetExtendedErrorInfo(errBuff,2048) # <<<--- error here <<<---
            raise DAQError(error,errBuff.value.decode("utf-8"), f.__name__)
        elif error>0:
            errBuff = create_string_buffer(2048)
            DAQmxGetErrorString (error, errBuff, 2048);
#            print "WARNING  :",error, "  ", errBuff.value.decode("utf-8")
            raise DAQError(error,errBuff.value.decode("utf-8"), f.__name__)
        return error
    return mafunction

我不知道为什么。

这是在我尝试安装"instrumental-lib"和"NiceLib"(http://instrumental-lib.readthedocs.io/en/latest/ni-daqs.html)之后,但重新安装Anaconda、PyDAQmx和NIDAQmx驱动程序没有效果。

首先你需要清除NI MAX数据库: 打开 NI MAX -> 工具 -> 重置配置数据

然后卸载(不是恢复)所有 NI 软件。

然后重新安装NI DAQmx。

我也重新安装了 Anaconda,但我认为你不应该这样做。