Skip to content

Geopandas Fixes

paulati edited this page Apr 23, 2021 · 13 revisions

Instrucciones

conda create --yes --name dhdsblend2021_geopandas python=3.7

conda activate dhdsblend2021_geopandas

conda install jupyterlab=2.2.6

conda install -c conda-forge pyproj=2.4.2.post1

conda install -c conda-forge descartes=1.1.0

conda install -c conda-forge geopandas=0.8.1

conda install -c conda-forge geopy=2.0.0

Caso 1

Al abrir una notebook e importar geopandas:

OSError: could not find or load spatialindex_c-64.dll

Fix

https://stackoverflow.com/questions/45901732/could-not-find-or-load-spatialindex-c-dll-in-windows/45970431

Con el entorno activado en la consola:

pip uninstall rtree

Caso 2

MacOS, al menos para Big Sur (la última versión que ya tiene varios meses):

pip3 uninstall shapely

pip3 install shapely==1.7.1 --no-binary shapely

esto intenta solucionar dos problemas distintos:

  1. Shapely mata el kernel, el error subyacente es a muy bajo nivel, probablemente incompatibilidad binaria de librerías:
Geometry must be a Point or LineString Assertion failed: (0 != cs), function GEOSCoordSeq_getSize_r, file geos_ts_c.cpp, line 3991. Abort trap: 6

Las fuentes que encontré que describen el problema son las que siguen, algunas se remontan a 2016 (pero aun abiertas), algunas aplican también a cartopy que nosotros no usamos, quizás porque cartopy instala shapely al igual que lo hace geopandas:

  1. La versión de shapely 1.7.0 que instala el ambiente de conda del curso no puede encontrar la librería C (libc) del sistema. Esto puede tener que ver con un cambio de versiones anteriores de MacOS a Big Sur. Al parecer la versión 1.7.1 lo soluciona. Esto fue prueba y error de mi parte.

Uniendo los dos puntos, queda el workaround de arriba.

Fix

pip3 uninstall shapely

pip3 install shapely==1.7.1 --no-binary shapely

Caso 3

Windows:

Una consideración general: Avast antivirus puede poner python.exe en cuarentena de modo silencioso luego de creado un ambiente. Concretamente el problema es corriendo Avast en modo silencioso, imagino que también pasará en modo "ruidoso", pero al menos uno se entera. Esto me costó un horror encontrarlo y sería bueno tenerlo presente no solo para Geopandas sino para Windows en general. Una referencia que encontré al problema es: https://github.com/ContinuumIO/anaconda-issues/issues/8266#issuecomment-368414798

Caso 4

Problemas con rtree, que es una dependencia que solo optimiza y no es esencial para el funcionamiento de geopandas. El error es

OSError: could not find or load spatialindex_c-64.dll. 

Fix

Desinstalar rtree con pip

pip uninstall rtree

Opción sin tener que usar pip:

conda install -c conda-forge rtree=0.9.3

Una referencia es: https://stackoverflow.com/questions/45901732/could-not-find-or-load-spatialindex-c-dll-in-windows/45970431

Clone this wiki locally