maric maric - 3 months ago 13
Python Question

Basemap and Fiona won't install for processing of maps & shp files in iPython Notebook

I'm a relatively new student of python and am still finding my way
around. I usually find answers pretty quickly via stack overflow but
this one leaves me stumped

I simply cannot get shape and map files to work with ipython notebook.
I can't seem to install basemap or fiona

Here is the command:

import matplotlib.pyplot as plt
import matplotlib.cm as cm
from matplotlib.colors import Normalize
from matplotlib.collections import PatchCollection
from mpl_toolkits.basemap import Basemap
from shapely.geometry import Point, Polygon, MultiPoint, MultiPolygon
from shapely.prepared import prep
from pysal.esda.mapclassify import Natural_Breaks as nb
from descartes import PolygonPatch
import fiona
from itertools import chain


And the Error:

---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
<ipython-input-120-17f76aeda5fd> in <module>()
3 from matplotlib.colors import Normalize
4 from matplotlib.collections import PatchCollection
----> 5 from mpl_toolkits.basemap import Basemap
6 from shapely.geometry import Point, Polygon, MultiPoint, MultiPolygon
7 from shapely.prepared import prep

ImportError: No module named 'mpl_toolkits.basemap'


I get the similar error for fiona and other components. What am I doing wrong, please?

I've installed matplotlib and other components in the past without issues I've tried using pip commands as so:

!conda install basemap
!pip install pyshp
!pip install fiona
!pip install descartes


Output:

Using Anaconda Cloud api site https://api.anaconda.org
...The following specifications were found to be in conflict:
- basemap -> matplotlib
- basemap -> numpy 1.10*|1.7*|1.8*|1.9*
- basemap -> python 2.7*
- conda -> conda-env *|<2.5|>=2.5.0
- conda -> menuinst
- conda -> pycosat
- conda -> python 2.7*
- conda -> pyyaml
- conda -> requests
- conda-env (target=conda-env-2.4.5-py35_0.tar.bz2) -> python 2.7*|3.3*|3.4*|3.5*
- cycler (target=cycler-0.10.0-py35_0.tar.bz2) -> python 2.7*|3.4*|3.5*
- cycler (target=cycler-0.10.0-py35_0.tar.bz2) -> six
- matplotlib (target=matplotlib-1.5.1-np110py35_0.tar.bz2) -> numpy 1.10*|1.11*|1.6*|1.7*|1.8*|1.9*
- matplotlib (target=matplotlib-1.5.1-np110py35_0.tar.bz2) -> pyqt
- matplotlib (target=matplotlib-1.5.1-np110py35_0.tar.bz2) -> python 2.6*|2.7*|3.3*|3.4*|3.5*
- matplotlib (target=matplotlib-1.5.1-np110py35_0.tar.bz2) -> python-dateutil
- matplotlib (target=matplotlib-1.5.1-np110py35_0.tar.bz2) -> pytz
- matplotlib (target=matplotlib-1.5.1-np110py35_0.tar.bz2) -> tk 8.5.*
- menuinst (target=menuinst-1.3.2-py35_0.tar.bz2) -> python 2.6*|2.7*|3.3*|3.4*|3.5*
- mkl-service (target=mkl-service-1.1.2-py35_0.tar.bz2) -> python 2.6*|2.7*|3.3*|3.4*|3.5*
- nose (target=nose-1.3.7-py35_0.tar.bz2) -> python 2.6*|2.7*|3.3*|3.4*|3.5*
- numexpr (target=numexpr-2.5-np110py35_0.tar.bz2) -> numpy 1.11*|1.6*
- numexpr (target=numexpr-2.5-np110py35_0.tar.bz2) -> python 2.6*|2.7*|3.3*|3.4*|3.5*
- numpy (target=numpy-1.10.4-py35_0.tar.bz2) -> nose
- numpy (target=numpy-1.10.4-py35_0.tar.bz2) -> python 2.7*
- pip (target=pip-8.1.1-py35_1.tar.bz2) -> python 2.7*
- pycosat (target=pycosat-0.6.1-py35_0.tar.bz2) -> python 2.6*|2.7*|3.3*|3.4*|3.5*
- pyparsing (target=pyparsing-2.0.3-py35_0.tar.bz2) -> python 2.6*|2.7*|3.3*|3.4*|3.5*
- pyqt (target=pyqt-4.11.4-py35_5.tar.bz2) -> python 2.6*|2.7*|3.3*|3.4*|3.5*
- pyqt (target=pyqt-4.11.4-py35_5.tar.bz2) -> qt >=4.8.6|>=4.8.7
- pyqt (target=pyqt-4.11.4-py35_5.tar.bz2) -> sip >=4.16.4
- python 3.5*
- python-dateutil (target=python-dateutil-2.5.1-py35_0.tar.bz2) -> python 2.6*|2.7*|3.3*|3.4*|3.5*
- pytz (target=pytz-2016.2-py35_0.tar.bz2) -> python 2.6*|2.7*|3.3*|3.4*|3.5*
- pyyaml (target=pyyaml-3.11-py35_3.tar.bz2) -> python 2.6*|2.7*|3.3*|3.4*|3.5*
- qt (target=qt-4.8.7-vc14_7.tar.bz2) -> @vc10
- qt (target=qt-4.8.7-vc14_7.tar.bz2) -> @vc14
- qt (target=qt-4.8.7-vc14_7.tar.bz2) -> @vc9
- requests (target=requests-2.9.1-py35_0.tar.bz2) -> python 2.6*|2.7*|3.3*|3.4*|3.5*
- scikit-learn (target=scikit-learn-0.17.1-np110py35_0.tar.bz2) -> nose
- scikit-learn (target=scikit-learn-0.17.1-np110py35_0.tar.bz2) -> numpy 1.11*|1.6*
- scikit-learn (target=scikit-learn-0.17.1-np110py35_0.tar.bz2) -> python 2.6*|2.7*|3.3*|3.4*|3.5*
- scikit-learn (target=scikit-learn-0.17.1-np110py35_0.tar.bz2) -> scipy
- scipy (target=scipy-0.17.0-np110py35_0.tar.bz2) -> numpy 1.11*|1.6*
- scipy (target=scipy-0.17.0-np110py35_0.tar.bz2) -> python 2.6*|2.7*|3.3*|3.4*|3.5*
- setuptools (target=setuptools-20.3-py35_0.tar.bz2) -> python 2.6*|2.7*|3.3*|3.4*|3.5*
- sip (target=sip-4.16.9-py35_2.tar.bz2) -> python 2.7*|3.4*|3.5*
- six (target=six-1.10.0-py35_0.tar.bz2) -> python 2.6*|2.7*|3.3*|3.4*|3.5*
- tk (target=tk-8.5.18-vc14_0.tar.bz2) -> @vc10
- tk (target=tk-8.5.18-vc14_0.tar.bz2) -> @vc14
- tk (target=tk-8.5.18-vc14_0.tar.bz2) -> @vc9
- wheel (target=wheel-0.29.0-py35_0.tar.bz2) -> python 2.7*|3.3*|3.4*|3.5*
Use "conda info <package>" to see the dependencies for each package.
Requirement already satisfied (use --upgrade to upgrade): pyshp in c:\users\i\anaconda3\lib\site-packages
You are using pip version 8.1.1, however version 8.1.2 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.
Collecting fiona
Using cached Fiona-1.7.0.tar.gz
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "C:\Users\i\AppData\Local\Temp\pip-build-30kz6icw\fiona\setup.py",
line 198, in <module>
copy_gdalapi_c(gdalversion)
NameError: name 'gdalversion' is not defined

----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in C:\Users\i\AppData\Local\Temp\pip-build-30kz6icw\fiona\
You are using pip version 8.1.1, however version 8.1.2 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.
Requirement already satisfied (use --upgrade to upgrade): descartes in c:\users\i\anaconda3\lib\site-packages
You are using pip version 8.1.1, however version 8.1.2 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.


The version of the notebook server is 4.1.0 and is running on is Python
3.5.1 |Anaconda 4.0.0 (32-bit)| (default, Mar 4 2016, 15:28:01) [MSC v.1900 32 bit (Intel)]

Answer

I recommend using the conda-forge channel to install those packages with conda. On the command line:

conda install -c conda-forge pyshp fiona descartes

Using pip to install on windows will not work (you need the correct compilers for that, unless binary wheels are provided on PyPI, but this is not the case for those packages)

The conda-forge channel is a community led collection of conda packages.

Comments