Project: neo4j

Neo4j Bolt driver for Python

Project Details

Latest version
5.16.0
Home Page
PyPI Page
https://pypi.org/project/neo4j/

Project Popularity

PageRank
0.005189705305859232
Number of downloads
1050455


Neo4j Bolt Driver for Python


This repository contains the official Neo4j driver for Python.

Starting with 5.0, the Neo4j Drivers will be moving to a monthly release cadence. A minor version will be released on the last Friday of each month so as to maintain versioning consistency with the core product (Neo4j DBMS) which has also moved to a monthly cadence.

As a policy, patch versions will not be released except on rare occasions. Bug fixes and updates will go into the latest minor version and users should upgrade to that. Driver upgrades within a major version will never contain breaking API changes.

See also: https://neo4j.com/developer/kb/neo4j-supported-versions/

  • Python 3.12 supported.
  • Python 3.11 supported.
  • Python 3.10 supported.
  • Python 3.9 supported.
  • Python 3.8 supported.
  • Python 3.7 supported.

Installation

To install the latest stable version, use:

.. code:: bash

pip install neo4j

.. TODO: 7.0 - remove this note

.. note::

``neo4j-driver`` is the old name for this package. It is now deprecated and
and will receive no further updates starting with 6.0.0. Make sure to
install ``neo4j`` as shown above.

Quick Example

.. code-block:: python

from neo4j import GraphDatabase, RoutingControl


URI = "neo4j://localhost:7687"
AUTH = ("neo4j", "password")


def add_friend(driver, name, friend_name):
    driver.execute_query(
        "MERGE (a:Person {name: $name}) "
        "MERGE (friend:Person {name: $friend_name}) "
        "MERGE (a)-[:KNOWS]->(friend)",
        name=name, friend_name=friend_name, database_="neo4j",
    )


def print_friends(driver, name):
    records, _, _ = driver.execute_query(
        "MATCH (a:Person)-[:KNOWS]->(friend) WHERE a.name = $name "
        "RETURN friend.name ORDER BY friend.name",
        name=name, database_="neo4j", routing_=RoutingControl.READ,
    )
    for record in records:
        print(record["friend.name"])


with GraphDatabase.driver(URI, auth=AUTH) as driver:
    add_friend(driver, "Arthur", "Guinevere")
    add_friend(driver, "Arthur", "Lancelot")
    add_friend(driver, "Arthur", "Merlin")
    print_friends(driver, "Arthur")

Further Information

  • The Neo4j Operations Manual_ (docs on how to run a Neo4j server)
  • The Neo4j Python Driver Manual_ (good introduction to this driver)
  • Python Driver API Documentation_ (full API documentation for this driver)
  • Neo4j Cypher Cheat Sheet_ (summary of Cypher syntax - Neo4j's graph query language)
  • Example Project_ (small web application using this driver)
  • GraphAcademy_ (interactive, free online trainings for Neo4j)
  • Driver Wiki_ (includes change logs)
  • Neo4j Migration Guide_

.. _The Neo4j Operations Manual: https://neo4j.com/docs/operations-manual/current/ .. _The Neo4j Python Driver Manual: https://neo4j.com/docs/python-manual/current/ .. _Python Driver API Documentation: https://neo4j.com/docs/api/python-driver/current/ .. _Neo4j Cypher Cheat Sheet: https://neo4j.com/docs/cypher-cheat-sheet/ .. _Example Project: https://github.com/neo4j-examples/movies-python-bolt .. _GraphAcademy: https://graphacademy.neo4j.com/categories/python/ .. _Driver Wiki: https://github.com/neo4j/neo4j-python-driver/wiki .. _Neo4j Migration Guide: https://neo4j.com/docs/migration-guide/current/