From fa6954084f533971538063af1d1969830b86d6dc Mon Sep 17 00:00:00 2001 From: Joris Van den Bossche Date: Mon, 27 Sep 2021 20:57:55 +0200 Subject: [PATCH] BUG: fix importing of Fiona to avoid AttributeError on broken fiona install (#2139) --- geopandas/io/file.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/geopandas/io/file.py b/geopandas/io/file.py index 27095bc..5946781 100644 --- a/geopandas/io/file.py +++ b/geopandas/io/file.py @@ -14,17 +14,22 @@ try: import fiona fiona_import_error = None + + # only try to import fiona.Env if the main fiona import succeeded (otherwise you + # can get confusing "AttributeError: module 'fiona' has no attribute '_loading'" + # / partially initialized module errors) + try: + from fiona import Env as fiona_env + except ImportError: + try: + from fiona import drivers as fiona_env + except ImportError: + fiona_env = None + except ImportError as err: fiona = None fiona_import_error = str(err) -try: - from fiona import Env as fiona_env -except ImportError: - try: - from fiona import drivers as fiona_env - except ImportError: - fiona_env = None from geopandas import GeoDataFrame, GeoSeries