Search code examples
pythonanacondageopandasfiona

Geopandas read_file


I have some problems concerning geopandas and fiona when using the read_file function. Here is my traceback:

df = gpd.read_file('/Users/danqing0703/github/Land-Use-Simulation/LBS_Data_Fetching/osm_api/singapore_roads.geojson')

---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-3-0c9777b3c6b2> in <module>()
----> 1 boros = GeoDataFrame.from_file('nybb.shp')

/Users/danqing0703/anaconda/lib/python2.7/site-packages/geopandas/geodataframe.pyc in from_file(cls, filename, **kwargs)
    159 
    160         """
--> 161         return geopandas.io.file.read_file(filename, **kwargs)
    162 
    163     @classmethod

/Users/danqing0703/anaconda/lib/python2.7/site-packages/geopandas/io/file.pyc in read_file(filename, **kwargs)
      9     opening the file.
     10     """
---> 11     import fiona
     12     bbox = kwargs.pop('bbox', None)
     13     with fiona.open(filename, **kwargs) as f:

/Users/danqing0703/anaconda/lib/python2.7/site-packages/fiona/__init__.py in <module>()
     70 from six import string_types
     71 
---> 72 from fiona.collection import Collection, BytesCollection, vsi_path
     73 from fiona._drivers import driver_count, GDALEnv, supported_drivers
     74 from fiona.odict import OrderedDict

/Users/danqing0703/anaconda/lib/python2.7/site-packages/fiona/collection.py in <module>()
      5 import sys
      6 
----> 7 from fiona.ogrext import Iterator, ItemsIterator, KeysIterator
      8 from fiona.ogrext import Session, WritingSession
      9 from fiona.ogrext import (

ImportError: dlopen(/Users/danqing0703/anaconda/lib/python2.7/site-packages/fiona/ogrext.so, 2): Library not loaded: /usr/local/lib/libjpeg.8.dylib
  Referenced from: /usr/local/lib/libgdal.1.dylib
  Reason: Incompatible library version: libgdal.1.dylib requires version 13.0.0 or later, but libjpeg.8.dylib provides version 12.0.0

Solution

  • Updating system's libjpeg broke the dynamic linking of fiona. There are two ways to deal with that:

    I would prefer: pip uninstall fiona, conda install fiona

    If you want to stick with pip: pip uninstall fiona, pip install fiona

    For a more detailed explanation, also see my answer here:

    import matplotlib.pyplot gives ImportError: dlopen(…) Library not loaded libpng15.15.dylib