NetworkX requires Python 3.7, 3.8, or 3.9. If you do not already have a Python environment configured on your computer, please see the instructions for installing the full scientific Python stack.
Below we assume you have the default Python environment already configured on
your computer and you intend to install networkx
inside of it. If you want
to create and work with Python virtual environments, please follow instructions
on venv and virtual
environments.
First, make sure you have the latest version of pip
(the Python package manager)
installed. If you do not, refer to the Pip documentation and install pip
first.
Install the current release of networkx
with pip
:
$ pip install networkx[default]
To upgrade to a newer release use the --upgrade
flag:
$ pip install --upgrade networkx[default]
If you do not have permission to install software systemwide, you can
install into your user directory using the --user
flag:
$ pip install --user networkx[default]
If you do not want to install our dependencies (e.g., numpy
, scipy
, etc.),
you can use:
$ pip install networkx
This may be helpful if you are using PyPy or you are working on a project that only needs a limited subset of our functionality and you want to limit the number of dependencies.
Alternatively, you can manually download networkx
from
GitHub or
PyPI.
To install one of these versions, unpack it and run the following from the
top-level source directory using the Terminal:
$ pip install .[default]
If you have Git installed on your system, it is also
possible to install the development version of networkx
.
Before installing the development version, you may need to uninstall the
standard version of networkx
using pip
:
$ pip uninstall networkx
Then do:
$ git clone https://github.com/networkx/networkx.git $ cd networkx $ pip install -e .[default]
The pip install -e .[default]
command allows you to follow the development branch as
it changes by creating links in the right places and installing the command
line scripts to the appropriate locations.
Then, if you want to update networkx
at any time, in the same directory do:
$ git pull
Note
Some optional packages (e.g., gdal) may require compiling C or C++ code. If you have difficulty installing these packages with pip, please consult the homepages of those packages.
The following extra packages provide additional functionality. See the
files in the requirements/
directory for information about specific
version requirements.
- PyGraphviz and pydot provide graph drawing and graph layout algorithms via GraphViz.
- PyYAML provides YAML format reading and writing.
- gdal provides shapefile format reading and writing.
- lxml used for GraphML XML format.
To install networkx
and extra packages, do:
$ pip install networkx[default,extra]
To explicitly install all optional packages, do:
$ pip install pygraphviz pydot pyyaml gdal lxml
Or, install any optional package (e.g., pygraphviz
) individually:
$ pip install pygraphviz
NetworkX uses the Python pytest
testing package. You can learn more
about pytest on their homepage.
You can test the complete package from the unpacked source directory with:
pytest networkx
From a shell command prompt you can test the installed package with:
pytest --pyargs networkx