PyDAQmx.Task() возвращает 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 не эффект.

1 ответ

Решение

Сначала вам нужно очистить базу данных NI MAX: откройте NI MAX -> Инструменты -> Сбросить данные конфигурации

Затем удалите (а не восстановите) все программное обеспечение NI.

А затем снова установите NI DAQmx.

Я также переустанавливаю Anaconda, но я думаю, тебе не следует это делать.

Другие вопросы по тегам