Registry / web-framework / nautobot

nautobot

JSON →
library3.1.4pypypiunverified

Nautobot is an open source network source of truth and automation platform built on Django. It provides a highly extensible data model for network inventory, IP address management (IPAM), and device configuration, alongside a powerful framework for custom automation jobs and plugins. The current version is 3.1.0, with frequent patch releases across major versions (2.x, 3.x) and a new major version released approximately every 6-12 months.

pip install nautobot
INSTALL
IMPORT
SIG · NAUTOBOT
N
nautobot
web-frameworkpythonv3.1.4
Install
22.2s avg
Import
Disk
428MB
Pass rate
10/ 10
Env Coverage10 / 10
glibc
3.93.13
musl
3.93.13
Install & Compatibility
Where this runs
tested against v3.1.4 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
py 3.103.920 runs
installs and imports cleanly · install 0.0s · import 0.000s · 443.6MB
glibc
py 3.103.920 runs
installs and imports cleanly · install 22.2s · import 0.000s · 448MB
428MB installed
● package 428MB
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

Job
from nautobot.extras.jobs import Job
from nautobot.apps.jobs import Job

This quickstart demonstrates defining a basic Nautobot Job, a common way to extend Nautobot's functionality using Python. The `Job` class provides methods for interacting with Nautobot models and logging. This code is designed to be saved within a Nautobot job directory and executed via the Nautobot UI or `nautobot-server runjob` command, making use of the library's internal context.

from nautobot.dcim.models import Device from nautobot.extras.jobs import Job # Example: A simple job to list devices class MyFirstJob(Job): name = "My First Nautobot Job" description = "A simple job to list devices and log their names." task_queue = "default" def run(self, data, commit): self.log_info(message="Starting MyFirstJob...") devices = Device.objects.all() self.log_info(f"Found {devices.count()} devices in the database.") for device in devices: self.log_info(f"- Device: {device.name}, Status: {device.status}") self.log_success("Job completed successfully!") return "Success" # To make this job available in Nautobot: # 1. Save this code as 'my_job.py' (or similar) in a directory configured for Nautobot jobs. # 2. In the Nautobot UI, navigate to Jobs, find 'My First Nautobot Job', and click 'Run'. # This quickstart demonstrates how to define a Job that interacts with Nautobot models # and is executed by the Nautobot platform.
nautobot-server --version
Debug
Known issues
breakingNautobot 3.1 drops support for PostgreSQL versions 12.x and 13.x. A minimum of PostgreSQL 14.0 is now required.
fix
Upgrade your PostgreSQL database to version 14.0 or higher before upgrading to Nautobot 3.1.
affects: 3.1.0+
breakingNautobot 3.1 upgrades its core Django dependency to Django 5.2. This may introduce breaking changes for custom plugins or apps that rely on specific Django versions or deprecated features, particularly if they are not actively maintained.
fix
Review Django 5.2 release notes and test custom plugins thoroughly before upgrading. Update plugin code to adhere to Django 5.2 API changes.
affects: 3.1.0+
gotchaSecurity updates in patch releases often mention indirect dependencies (e.g., `pygments`, `pyasn1`, `pyjwt`) that do not automatically update with `pip install --upgrade nautobot`. You must manually update your Python environment's global or virtual environment dependencies.
fix
Regularly review Nautobot release notes for indirect dependency security updates. Manually run `pip install --upgrade <package_name>` for affected packages or reinstall your virtual environment.
affects: All versions
gotchaSignificant API changes can occur between major Nautobot versions (e.g., from 2.x to 3.x), particularly affecting plugin and job development due to underlying Django and Django REST Framework upgrades. Existing custom code may require substantial refactoring.
fix
Consult the official Nautobot upgrade guides for detailed migration instructions for each major version. Plan for code review and testing of custom plugins and jobs.
affects: Major version upgrades (e.g., 2.x -> 3.x)
Upgrade
Version history
3.1.4latest on PyPI · released Jun 8, 2026
Audit
Dependencies
PostgreSQLrequiredNautobot is a Django application and requires a PostgreSQL database. Version 14.0 or newer is required for Nautobot 3.1+.
RedisrequiredRequired for caching and task queuing.
Agent activity
31 hits · last 30 days
node
30
Resources
nautobot — pip install nautobot · libregistry