webentwicklung-frage-antwort-db.com.de

Grundkartenbibliothek mit Anaconda Jupyter Notebooks - KeyError: PROJ_LIB

Ich versuche, die Basemap-Bibliothek in mein Jupyter Notebook zu installieren und zu importieren. Dies gibt jedoch die folgende Fehlermeldung aus:

KeyError: 'PROJ_LIB'

Nach einigen Recherchen im Internet verstehe ich, dass ich Basemap in einer separaten Umgebung in Anaconda installieren sollte. Nach dem Erstellen einer neuen Umgebung und der Installation von Basemap (sowie aller anderen relevanten Bibliotheken) habe ich die Umgebung aktiviert. Beim Import von Basemap erhalte ich trotzdem den gleichen KeyError.

Folgendes habe ich in meinem MacOS-Terminal gemacht:

conda create --name Py3.6 python=3.6 basemap
source activate Py3.6
conda upgrade proj4
env | grep -i proj
conda update --channel conda-forge proj4

Dann führe ich in Jupyter Notebook folgendes aus:

from mpl_toolkits.basemap import Basemap

Kann mir jemand sagen, warum dies zu einem KeyError führt?

5
RubenB

Sie müssen die Umgebungsvariable PROJ_LIB entweder vor dem Starten Ihres Notebooks oder in Python mit os.environ['PROJ_LIB'] = '<path_to_anaconda>/share/proj' einstellen.

Ref. Grundkartenimportfehler in PyCharm —— KeyError: 'PROJ_LIB'

7
RandyP

In der Windows 10-Befehlszeile: Suchen Sie zuerst das Verzeichnis, in dem die Datei epsg gespeichert ist:

where /r "c:\Users\username" epsg.*

...

c:\Benutzer\Benutzername\AppData\Local\conda\conda\envs\envname\Library\share \ epsg

...

dann entweder in der Befehlszeile:

activate envname

SET PROJ_LIB=c:\Users\username\AppData\Local\conda\conda\envs\envname\Library\share

(Stellen Sie sicher, dass keine Leerzeichen im Pfad nachfolgen!) und dann 

jupyter notebook

oder fügen Sie dies Ihrem Jupyter-Notizbuch hinzu (wie von John Ed vorgeschlagen):

import os

os.environ['PROJ_LIB'] = r'c:\Users\username\AppData\Local\conda\conda\envs\envname\Library\share'
1
Pavlo

Das Problem tritt auf, da der Dateispeicherort von "epsg" und "PROJ_LIB" für aktuelle Versionen von Python geändert wurde, sie aber irgendwie vergessen haben, " init . Py" für Basemap zu aktualisieren. Wenn Sie Python mit Anaconda installiert haben, ist dies ein möglicher Speicherort für Ihre espg-Datei: C:\Users (xxxx)\AppData\Local\Continuum\anaconda3\pkgs\proj4-5.1.0-hfa6e2cd_1\Library\share .__ Sie müssen diesen Pfad also am Anfang Ihres Codes in spyder oder in einem beliebigen Feld angeben, das Sie verwenden. 

import os

os.environ ['PROJ_LIB'] = r'C:\Benutzer (xxxx)\AppData\Local\Continuum\anaconda3\pkgs\proj4-5.1.0-hfa6e2cd_1\Library\share '

von mpl_toolkits.basemap importieren Basemap

0
john ed