#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
. Поэтому лучше всего было бы переименовать ваш файл.