NAPALM Issue: <class 'ModuleNotFoundError'> No module named 'napalm.eos.eos.eosdriver'; 'napalm.eos.eos' is not a package

184 views
Skip to first unread message

Konstantin G

unread,
Aug 16, 2019, 4:41:40 PM8/16/19
to NetBox
Hello, 
I have the issue if you will be able to give me some advice or solution would be great.
I'm starting to use NAPALM
netbox and napalm works on python3.6 as user root inside LXC
Thank you

Result of .../api/dcim/devices/18/napalm/:

Screenshot-20190816232059-968x467.png



<class 'ModuleNotFoundError'>

No module named 'napalm.eos.eos.eosdriver'; 'napalm.eos.eos' is not a package


root@netbox:/opt/netbox/netbox# python3 ./manage.py nbshell
### NetBox interactive shell (netbox)
### Python 3.6.8 | Django 2.2.4 | NetBox 2.6.2
### lsmodels() will show available models. Use help(<model>) for more info.
>>> 
>>> 
>>> import napalm
>>> napalm.get_network_driver('eos')
<class 'napalm.eos.eos.EOSDriver'>
>>> 


root@netbox:/opt/netbox/netbox# pip3 freeze | grep napalm
napalm==2.4.0
napalm-base==1.0.0
napalm-eos==0.6.1
napalm-fortios==0.4.1
napalm-ios==0.8.1
napalm-iosxr==0.5.6
napalm-junos==0.12.1
napalm-nxos==0.7.1
napalm-panos==0.5.2
napalm-ros==0.4.1
napalm-vyos==0.1.6
root@netbox:/opt/netbox/netbox# 
root@netbox:/opt/netbox/netbox# which python
/usr/bin/python
root@netbox:/opt/netbox/netbox# which python3
/usr/bin/python3
root@netbox:/opt/netbox/netbox# cat /etc/systemd/system/multi-user.target.wants/netbox.service 
[Unit]
Description=NetBox
After=multi-user.target nginx.service

[Service]
Type=idle
ExecStart=/usr/bin/python3 /opt/netbox/netbox/manage.py runserver 127.0.0.1:8000 --insecure

[Install]
WantedBy=multi-user.target

root@netbox:/opt/netbox# ./upgrade.sh 
Removing old Python packages (pip3 uninstall -r old_requirements.txt -y)...
Cannot uninstall requirement django-rest-swagger, not installed
Updating required Python packages (pip3 install -r requirements.txt --upgrade)...
Requirement already up-to-date: Django<2.3,>=2.2 in /usr/local/lib/python3.6/dist-packages (from -r requirements.txt (line 1))
Requirement already up-to-date: django-cacheops==4.1 in /usr/local/lib/python3.6/dist-packages (from -r requirements.txt (line 2))
Requirement already up-to-date: django-cors-headers==3.0.2 in /usr/local/lib/python3.6/dist-packages (from -r requirements.txt (line 3))
Requirement already up-to-date: django-debug-toolbar==2.0 in /usr/local/lib/python3.6/dist-packages (from -r requirements.txt (line 4))
Requirement already up-to-date: django-filter==2.1.0 in /usr/local/lib/python3.6/dist-packages (from -r requirements.txt (line 5))
Requirement already up-to-date: django-mptt==0.9.1 in /usr/local/lib/python3.6/dist-packages (from -r requirements.txt (line 6))
Requirement already up-to-date: django-prometheus==1.0.15 in /usr/local/lib/python3.6/dist-packages (from -r requirements.txt (line 7))
Requirement already up-to-date: django-rq==2.1.0 in /usr/local/lib/python3.6/dist-packages (from -r requirements.txt (line 8))
Requirement already up-to-date: django-tables2==2.0.6 in /usr/local/lib/python3.6/dist-packages (from -r requirements.txt (line 9))
Requirement already up-to-date: django-taggit==1.1.0 in /usr/local/lib/python3.6/dist-packages (from -r requirements.txt (line 10))
Requirement already up-to-date: django-taggit-serializer==0.1.7 in /usr/local/lib/python3.6/dist-packages (from -r requirements.txt (line 11))
Requirement already up-to-date: django-timezone-field==3.0 in /usr/local/lib/python3.6/dist-packages (from -r requirements.txt (line 12))
Requirement already up-to-date: djangorestframework==3.9.4 in /usr/local/lib/python3.6/dist-packages (from -r requirements.txt (line 13))
Requirement already up-to-date: drf-yasg[validation]==1.16.0 in /usr/local/lib/python3.6/dist-packages (from -r requirements.txt (line 14))
Requirement already up-to-date: graphviz==0.10.1 in /usr/local/lib/python3.6/dist-packages (from -r requirements.txt (line 15))
Requirement already up-to-date: Jinja2==2.10.1 in /usr/local/lib/python3.6/dist-packages (from -r requirements.txt (line 16))
Requirement already up-to-date: Markdown==2.6.11 in /usr/local/lib/python3.6/dist-packages (from -r requirements.txt (line 17))
Requirement already up-to-date: netaddr==0.7.19 in /usr/local/lib/python3.6/dist-packages (from -r requirements.txt (line 18))
Requirement already up-to-date: Pillow==6.0.0 in /usr/local/lib/python3.6/dist-packages (from -r requirements.txt (line 19))
Requirement already up-to-date: psycopg2-binary==2.8.3 in /usr/local/lib/python3.6/dist-packages (from -r requirements.txt (line 20))
Requirement already up-to-date: py-gfm==0.1.4 in /usr/local/lib/python3.6/dist-packages (from -r requirements.txt (line 21))
Requirement already up-to-date: pycryptodome==3.8.2 in /usr/local/lib/python3.6/dist-packages (from -r requirements.txt (line 22))
Requirement already up-to-date: sqlparse in /usr/local/lib/python3.6/dist-packages (from Django<2.3,>=2.2->-r requirements.txt (line 1))
Requirement already up-to-date: pytz in /usr/local/lib/python3.6/dist-packages (from Django<2.3,>=2.2->-r requirements.txt (line 1))
Requirement already up-to-date: redis>=2.9.1 in /usr/local/lib/python3.6/dist-packages (from django-cacheops==4.1->-r requirements.txt (line 2))
Requirement already up-to-date: six>=1.4.0 in /usr/local/lib/python3.6/dist-packages (from django-cacheops==4.1->-r requirements.txt (line 2))
Requirement already up-to-date: funcy<2.0,>=1.8 in /usr/local/lib/python3.6/dist-packages (from django-cacheops==4.1->-r requirements.txt (line 2))
Requirement already up-to-date: django-js-asset in /usr/local/lib/python3.6/dist-packages (from django-mptt==0.9.1->-r requirements.txt (line 6))
Requirement already up-to-date: prometheus-client>=0.0.21 in /usr/local/lib/python3.6/dist-packages (from django-prometheus==1.0.15->-r requirements.txt (line 7))
Requirement already up-to-date: rq>=1.0 in /usr/local/lib/python3.6/dist-packages (from django-rq==2.1.0->-r requirements.txt (line 8))
Requirement already up-to-date: inflection>=0.3.1 in /usr/local/lib/python3.6/dist-packages (from drf-yasg[validation]==1.16.0->-r requirements.txt (line 14))
Requirement already up-to-date: ruamel.yaml>=0.15.34 in /usr/local/lib/python3.6/dist-packages (from drf-yasg[validation]==1.16.0->-r requirements.txt (line 14))
Requirement already up-to-date: coreapi>=2.3.3 in /usr/local/lib/python3.6/dist-packages (from drf-yasg[validation]==1.16.0->-r requirements.txt (line 14))
Requirement already up-to-date: uritemplate>=3.0.0 in /usr/local/lib/python3.6/dist-packages (from drf-yasg[validation]==1.16.0->-r requirements.txt (line 14))
Requirement already up-to-date: coreschema>=0.0.4 in /usr/local/lib/python3.6/dist-packages (from drf-yasg[validation]==1.16.0->-r requirements.txt (line 14))
Requirement already up-to-date: swagger-spec-validator>=2.1.0; extra == "validation" in /usr/local/lib/python3.6/dist-packages (from drf-yasg[validation]==1.16.0->-r requirements.txt (line 14))
Requirement already up-to-date: MarkupSafe>=0.23 in /usr/local/lib/python3.6/dist-packages (from Jinja2==2.10.1->-r requirements.txt (line 16))
Requirement already up-to-date: setuptools in /usr/local/lib/python3.6/dist-packages (from py-gfm==0.1.4->-r requirements.txt (line 21))
Requirement already up-to-date: click>=5.0 in /usr/local/lib/python3.6/dist-packages (from rq>=1.0->django-rq==2.1.0->-r requirements.txt (line 8))
Requirement already up-to-date: ruamel.yaml.clib>=0.1.2; platform_python_implementation == "CPython" and python_version < "3.8" in /usr/local/lib/python3.6/dist-packages (from ruamel.yaml>=0.15.34->drf-yasg[validation]==1.16.0->-r requirements.txt (line 14))
Requirement already up-to-date: requests in /usr/local/lib/python3.6/dist-packages (from coreapi>=2.3.3->drf-yasg[validation]==1.16.0->-r requirements.txt (line 14))
Requirement already up-to-date: itypes in /usr/local/lib/python3.6/dist-packages (from coreapi>=2.3.3->drf-yasg[validation]==1.16.0->-r requirements.txt (line 14))
Requirement already up-to-date: jsonschema in /usr/local/lib/python3.6/dist-packages (from swagger-spec-validator>=2.1.0; extra == "validation"->drf-yasg[validation]==1.16.0->-r requirements.txt (line 14))
Requirement already up-to-date: pyyaml in /usr/local/lib/python3.6/dist-packages (from swagger-spec-validator>=2.1.0; extra == "validation"->drf-yasg[validation]==1.16.0->-r requirements.txt (line 14))
Requirement already up-to-date: idna<2.9,>=2.5 in /usr/local/lib/python3.6/dist-packages (from requests->coreapi>=2.3.3->drf-yasg[validation]==1.16.0->-r requirements.txt (line 14))
Requirement already up-to-date: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/local/lib/python3.6/dist-packages (from requests->coreapi>=2.3.3->drf-yasg[validation]==1.16.0->-r requirements.txt (line 14))
Requirement already up-to-date: chardet<3.1.0,>=3.0.2 in /usr/local/lib/python3.6/dist-packages (from requests->coreapi>=2.3.3->drf-yasg[validation]==1.16.0->-r requirements.txt (line 14))
Requirement already up-to-date: certifi>=2017.4.17 in /usr/local/lib/python3.6/dist-packages (from requests->coreapi>=2.3.3->drf-yasg[validation]==1.16.0->-r requirements.txt (line 14))
Requirement already up-to-date: pyrsistent>=0.14.0 in /usr/local/lib/python3.6/dist-packages (from jsonschema->swagger-spec-validator>=2.1.0; extra == "validation"->drf-yasg[validation]==1.16.0->-r requirements.txt (line 14))
Requirement already up-to-date: attrs>=17.4.0 in /usr/local/lib/python3.6/dist-packages (from jsonschema->swagger-spec-validator>=2.1.0; extra == "validation"->drf-yasg[validation]==1.16.0->-r requirements.txt (line 14))
Applying database migrations (python3 netbox/manage.py migrate)...
Operations to perform:
  Apply all migrations: admin, auth, circuits, contenttypes, dcim, extras, ipam, secrets, sessions, taggit, tenancy, users, virtualization
Running migrations:
  No migrations to apply.
Collecting static files (python3 netbox/manage.py collectstatic --no-input)...

0 static files copied to '/opt/netbox/netbox/static', 344 unmodified.


root@netbox:/opt/netbox# comm -13 <(pip3 freeze | sort) <(sort requirements.txt)

Django>=2.2,<2.3
drf-yasg[validation]==1.16.0

Django==2.2.4
drf-yasg==1.16.0



Steffen Walter

unread,
Aug 19, 2019, 3:43:28 AM8/19/19
to NetBox
Not sure if related to your issue, but you should not start NetBox as django development webserver.
You should follow the instructions of this section of the documentation to set up your webserver and wsgi server:
https://netbox.readthedocs.io/en/stable/installation/3-http-daemon/
Instead of supervisord you can also use systemd to start gunicorn.

Are you sure the napalm packages are all installed as site-packages on your container?
Reply all
Reply to author
Forward
0 new messages