В настоящее время я пытаюсь настроить тест с Netmiko и Textfsm в Windows 10, но независимо от того, по какому пути я пытаюсь настроить переменную среды textfsm, он все равно не подхватывает ее и выдает ошибку:
Действительные nt c - шаблоны не найдены, пожалуйста, установите https://github.com/networktocode/ntc-templates и затем установите переменную среды NET_TEXTFSM, чтобы она указывала на ./ntc-templates/templates directory.
Я пытался установить переменную среды вручную через системные свойства -> переменные среды, но все равно получал то же сообщение. Я пробовал как абсолютные, так и относительные пути и не go. В идеале относительный путь в качестве папки шаблона всегда должен быть рядом со скриптом, вызывающим его. Это может быть что-то простое, но я прямо сейчас упускаю это.
Структура папки:
Мой код:
import os, json
from netmiko import Netmiko
from netmiko import NetMikoAuthenticationException
templates = os.path.dirname(os.path.abspath(__file__)) + '\\ntc-template\\templates\\'
os.environ['NET_TEXTFSM']= templates
print(os.environ['NET_TEXTFSM'])
###############################################################
#Can i set the env var from within the scirpt using python?
#os.system(f'cmd /c "set NET_TEXTFSM={templates}"')
###############################################################
switch = {'device_type': 'cisco_ios',
'ip': '192.168.0.20',
'username': 'cisco',
'password': 'cisco',
'secret': 'cisco',
'timeout': 10000,
'session_timeout': 10000}
try:
c = Netmiko(**switch)
c.enable()
show_ip_arp = c.send_command('show ip arp', use_textfsm=True)
print(json.dumps(show_ip_arp))
except Exception as e:
print(e)
Я надеялся, что кто-нибудь укажет на то, что может быть не так или отсутствует. Я бы хотел избежать необходимости устанавливать какие-либо переменные окружения с помощью cmd, если только это не может быть автоматизировано. Идея в том, что тот, кто откроет этот py-файл, получит все, что нужно для использования textfsm.