Нет ‘get_network_driver’ в Python3 Napalm в контейнере сетевой автоматизации Ubuntu

#python-3.x #networking #containers #napalm #gns3

#python-3.x #сеть #контейнеры #napalm #gns3

Вопрос:

В настоящее время я работаю над контейнером сетевой автоматизации в GNS3. Пока я пытаюсь использовать napalm lib, я получаю либо эти две ошибки:

  • «Ошибка импорта: не удается импортировать имя ‘get_network_driver’ из частично инициализированного модуля ‘napalm’ (скорее всего, из-за циклического импорта) (/root/napalm.py )«

  • «Ошибка атрибута: частично инициализированный модуль’napalm’ не имеет атрибута’get_network_driver’ (скорее всего, из-за циклического импорта)«

Я проверил версию Python на этом компьютере, и она 3.8.3, поэтому napalm поддерживается здесь. Кто-нибудь знает, что может вызвать эту ошибку?

Ответ №1:

 There are 2 probable issues:
1. The nano files you created and saved in the appliance
2. Python - Netmiko - Napalm versions compatibility

Network Automation Appliance (NAA) comes preinstalled with Python 2.7 amp; 3.8   
Netmiko 3.0   Napalm 2.5.0.

You can see this with >>> pip freeze

Solution:
Use a fresh Network Automation Appliance (NAA) in your GNS3 topology.
Re-install Napalm in NAA with >>> pip install napalm
(This will auto-install Napalm's compatible version of Netmiko)

Check the version of Napalm and Netmiko installed with >>> pip freeze

napalm==2.5.0
netmiko==2.4.2
paramiko==2.7.1
  

Ответ №2:

Tl; dr: не называйте свой файл napalm.py

Вызывается ваш файл napalm.py , и библиотека также называется napalm . Когда вы выполняете a from napalm import get_network_driver , Python ищет в вашем файле napalm.py get_network_driver . Поэтому лучше всего было бы переименовать ваш файл.