Я пытаюсь связать некоторый существующий код Python 2 с пакетом sysrepo
в OpenWrt.Привязка Python использует SWIG для взаимодействия с базовым C / C ++.
Я пытаюсь создать объект YANG, вызывая функцию Session.set_item()
, но получаю исключение.
Однако обратите вниманиечто удаление того же объекта YANG работает нормально.
Вот некоторый код, который не работает:
import libsysrepoPython2 as sr
def delete_configuration_ntp(session):
print('Deleting')
session.delete_item('/ietf-system:system/ntp/enabled')
print('Deleted')
def create_configuration_ntp(session, enabled):
print('Creating')
value = sr.Val(enabled, sr.SR_BOOL_T)
print(' boolean value created')
session.set_item('/ietf-system:system/ntp/enabled', value)
print(' boolean value set')
print('Created')
try:
connection = sr.Connection("example_application")
session = sr.Session(connection, sr.SR_DS_RUNNING)
subscribe = sr.Subscribe(session)
delete_configuration_ntp(session)
create_configuration_ntp(session, True)
except Exception as e:
print('Main program exception:', e)
Я ожидаю, что эта программа Python2 будет работать, но она завершится с ошибкой следующим образом:
root@OpenWrt:~# python -V
Python 2.7.15
root@OpenWrt:~# ./minimal.py
Deleting
Deleted
Creating
boolean value created
('Main program exception:', RuntimeError('Invalid argument',))
root@OpenWrt:~#
Есть ли какие-либо указатели, например, как я могу отладить SWIG?
Могу ли я получить дополнительную информацию о причине этого исключения?