graphviz
Simple Python interface for Graphviz
Decision gist · record as of 2026-08-14
Yes. The package is actively maintained, has no Python dependencies, installs with low friction, carries no known vulnerabilities, and is widely used (top 1000 on PyPI). It solves a real problem—bridging Python and Graphviz—cleanly. The only gotcha is the external Graphviz system dependency, which is clearly documented and not the package's responsibility. Install it if you need to generate or render graphs from Python.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Graphviz (the system software, not this package) to be installed separately and the `dot` executable to be on your system PATH for rendering to work.
- Low install friction with no runtime dependencies.
- Actively maintained with recent commits and a stable release history since 2014.
License · maintenance · safety
MIT (permissive) — MIT license permits unrestricted commercial and private use, modification, and distribution with minimal restrictions.
last release 2025-06-15 (425 days) · last repo commit 2026-07-11 · 1,805 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 56,765,305 downloads/mo, #525 on PyPI
Alternatives
Verify before relying
pip install graphviz
import graphviz
dot = graphviz.Digraph(comment='Example')
dot.node('A', 'Node A')
dot.node('B', 'Node B')
dot.edge('A', 'B')
print(dot.source)
dot.render('output.gv', view=True)- Whether the package handles complex graph structures (e.g., subgraphs, clusters, styling attributes) beyond basic nodes and edges.
- Performance characteristics when working with large graphs (number of nodes/edges where rendering becomes slow).
- Jupyter notebook integration details and any limitations when displaying rendered output.
What it is and what it does
This package provides a Python interface for building graph structures and converting them to DOT language, the text format used by Graphviz. You create a graph object, add nodes and edges to it, and retrieve the DOT source code as a string. The package can then invoke your system's Graphviz installation to render that source into visual formats like PDF, PNG, or SVG. It integrates with Jupyter notebooks to display graphs directly in cells, and supports the `view` option to open rendered output in your default application.
The package itself contains no runtime dependencies and installs cleanly as a pure Python wheel. However, it is a wrapper—rendering actually happens through the external Graphviz software, which you must install separately and ensure is on your system PATH. If you only need to generate DOT source code without rendering, the package works standalone; if you want visual output, the system Graphviz installation is a hard requirement.
Use it for
- Generate flowcharts and decision trees programmatically, then render them to PDF or PNG for documentation.
- Visualize network topologies, dependency graphs, or state machines in Jupyter notebooks during exploratory analysis.
- Build graph structures dynamically from data (e.g., organizational hierarchies, call graphs) and export them as DOT files for version control.
- Create publication-quality diagrams by assembling graph definitions in Python and rendering to SVG for web or print.
- Debug and inspect graph-based algorithms by rendering intermediate states during execution.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes.
The package is actively maintained, has no Python dependencies, installs with low friction, carries no known vulnerabilities, and is widely used (top 1000 on PyPI). It solves a real problem—bridging Python and Graphviz—cleanly. The only gotcha is the external Graphviz system dependency, which is clearly documented and not the package's responsibility. Install it if you need to generate or render graphs from Python.
Install
graphviz on PyPI
Before you install
Low install friction with no runtime dependencies. Actively maintained with recent commits and a stable release history since 2014. Supports Python 3.9 through 3.13.
Requires Graphviz (the system software, not this package) to be installed separately and the `dot` executable to be on your system PATH for rendering to work.
License in practice
MIT license permits unrestricted commercial and private use, modification, and distribution with minimal restrictions.
Quickstart
pip install graphviz
import graphviz
dot = graphviz.Digraph(comment='Example')
dot.node('A', 'Node A')
dot.node('B', 'Node B')
dot.edge('A', 'B')
print(dot.source)
dot.render('output.gv', view=True)
Verify before relying
- Whether the package handles complex graph structures (e.g., subgraphs, clusters, styling attributes) beyond basic nodes and edges.
- Performance characteristics when working with large graphs (number of nodes/edges where rendering becomes slow).
- Jupyter notebook integration details and any limitations when displaying rendered output.
Package facts
| License | MIT permissive |
| Python support | Supports the current Python release >=3.9 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | None |
| Maintenance | Actively maintained 425 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 56,765,305 / month, #525 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 4 - BetaIntended Audience :: DevelopersIntended Audience :: Science/ResearchOperating System :: OS IndependentProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.9Topic :: Scientific/Engineering :: Visualization |
Evidence: graphviz-0.21-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “dot language generator”
- graphvizGenerates DOT language source code for graph structures and renders…
- GvGenGvGen generates Graphviz dot files programmatically, letting you…
- pydotpydot is a Python interface to Graphviz that lets you create, read,…
Give your agent the search over MCP, or paste the wish link into any chat.
More Visualization packages
matplotlib creates static, animated, and interactive visualizations in Python, producing publication-quality figures in multiple formats for scripts, shells, web servers, and graphical interfaces.
Install it if you need to visualize data, generate publication-quality figures, or embed plots in applications.
ContourPy calculates contours of 2D quadrilateral grids using C++11 algorithms wrapped in Python, offering serial and multithreaded implementations without requiring Matplotlib as a dependency.
Plotly is an interactive, browser-based graphing library that creates charts and visualizations from Python, rendering them as HTML that can be viewed in Jupyter notebooks, standalone files, or web applications.
Streamlit transforms Python scripts into interactive web applications with minimal code, enabling rapid development of data dashboards, reports, and chat interfaces without requiring web development expertise.
Leather is a lightweight Python charting library for quick, no-frills data visualization. It generates charts without requiring perfect styling or extensive configuration.
pydot is a Python interface to Graphviz that lets you create, read, edit, and visualize graphs using the DOT language, with a single runtime dependency (pyparsing) and optional NetworkX interoperability.
See also pydotplus · pygraphviz · GvGen · gprof2dot · markdown-graphviz-inline · pyan3 · pydot-ng · markdown-inline-graphviz-extension · objgraph