Repository: networkx/networkx

Issue:
why gdal==1.10.0 in requirements?
Hi,

When running the pip command (```pip install networkx[all]```), I ran into GDAL setup error.

I was surprised by the error, because GDAL (version 2.2.2) was already installed on my desktop:
```
pip show gdal
Name: GDAL
Version: 2.2.2
Summary: GDAL: Geospatial Data Abstraction Library
Home-page: http://www.gdal.org
...
```

Looking at [networkx distutils requirements](https://github.com/networkx/networkx/blob/master/requirements/extras.txt), I realized that GDAL requires strictly 1.10.0 version for GDAL:
```
pygraphviz>=1.5
pydot>=1.2.4
gdal==1.10.0
```

**Question**
Is there a particular reason why ```gdal==1.10.0```, instead of ```gdal>=1.10.0```? Having a strict version usually makes the lib install error-prone. Thanks in advance.



Discussion:
GDAL is normally a pain to install.  Every OS I have installed it on has required different steps.  I recently moved it to put it in `requirements/extras.txt` to help make it clearer that it would be more difficult to install.

Could you make a new virtual environment and check if
```
$ pip install 'gdal>=1.10.0'
```
works on your system?  If so, what system are you on?

Maybe we should take `gdal` out of `all`.
Hi Jarrod,

Good question, I wasn't able to install gdal via ```pip3 install 'gdal>=1.10.0'```.

Here is the only way that succeeded for me to install ```gdal```:
```
# Install gdal-bin and libgdal-dev
sudo add-apt-repository -y ppa:ubuntugis/ubuntugis-unstable
sudo apt update
sudo apt install gdal-bin libgdal-dev

# Install gdal via pip
pip3 install gdal==$(gdal-config --version) --global-option=build_ext --global-option='-I/usr/include/gdal/'

# gdal is successfully installed with version 2.2.2.
pip show gdal
Name: GDAL
Version: 2.2.2
Summary: GDAL: Geospatial Data Abstraction Library
Home-page: http://www.gdal.org
...
```

With ```gdal``` already installed on my desktop, now changing the [networkx requirements file](https://github.com/networkx/networkx/blob/master/requirements/extras.txt) locally makes a difference:
1. With ```'gdal==1.10.0'```, ```networkx[all]``` installation failed because pip tried to uninstall ```gdal 2.2.2``` and install ```gdal 1.10.0```.
2. With ```'gdal>=1.10.0'```, ```networkx[all]``` installation succeeded because ```2.2.2 > 1.10.0```.

Here are my thoughts:
1. If ```gdal``` is not a critical/important dependency for ```networkx```, taking ```gdal``` out of ```all``` sounds a reasonable approach to streamline install for clients.
2. If ```gdal``` is a critical/important dependency, then having ```gdal>=1.10.0``` in the requirements file, plus adding a few lines in the user guide on how to install ```gdal``` before installing ```networkx[all]``` will help.


Resolving patch:
diff --git a/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -134,7 +134,6 @@
         "pygraphviz",
         "pydot",
         "pyyaml",
-        "gdal",
         "lxml",
         "pytest",
     ],


Test patch:
diff --git a/requirements/test.txt b/requirements/test.txt
--- a/requirements/test.txt
+++ b/requirements/test.txt
@@ -1,3 +1,3 @@
-pytest>=5.4
+pytest>=6.0
 pytest-cov>=2.10
 codecov>=2.1