[Python] Erreur KeyError: solution PROJ_LIB

Error Keyerror



1. Installez le fond de carte

Étant donné que le fond de carte est basé sur les géos, vous devez d'abord installer les géos, et comme le fond de carte dépend de pyproj, vous devez installer pyproj
Utilisez conda pour installer ici, il installera toutes les dépendances requises par le fond de carte et résoudra également le problème de compatibilité de version.

conda install basemap

2. Importez le fond de carte, KeyError: «PROJ_LIB» apparaît

>>>from mpl_toolkits.basemap import Basemap Traceback (most recent call last): File '', line 1, in <module> File 'D:Anaconda3libsite-packagesmpl_toolkitsasemap\__init__.py', line 155, in <module> pyproj_datadir = os.environ['PROJ_LIB'] File 'D:Anaconda3libos.py', line 669, in __getitem__ raise KeyError(key) from None KeyError: 'PROJ_LIB' >>>

3. Solution

3.1 Analyse des raisons:

Lorsque python a été mis à niveau vers la dernière version 3.6, Anaconda n'a pas configuré automatiquement la variable d'environnement PROJ_LIB, et le code de configuration de epsgf dans le fichier __init__.py du fond de carte est le suivant, une erreur sera donc signalée



# create dictionary that maps epsg codes to Basemap kwargs. pyproj_datadir = os.environ['PROJ_LIB'] epsgf = open(os.path.join(pyproj_datadir,'epsg'))

3.2 Solution

Ajoutez le chemin du fichier epsg à la variable d'environnement système et nommez-le: PROJ_LIB



Comment trouver le chemin du fichier epsg?

3.2.1 Recherchez epsg sous le chemin d'installation d'Anaconda, la capture d'écran est la suivante:



image

Ajouter des variables d'environnement système

3.2.2 Ajoutez le chemin où se trouve epsg aux variables d'environnement système (mon chemin est: D: Anaconda3 Library share), la capture d'écran est la suivante
Nom de la variable: PROJ_LIB
Valeur de la variable: D: Anaconda3 Library share
image
3.2.3 Après avoir ajouté avec succès les variables d'environnement, redémarrez l'ordinateur pour importer le fond de carte avec succès et la vérification est réussie

C:Usersqidian>python Python 3.6.4 |Anaconda, Inc.| (default, Jan 16 2018, 10:22:32) [MSC v.1900 64 bi t (AMD64)] on win32 Type 'help', 'copyright', 'credits' or 'license' for more information. >>> from mpl_toolkits.basemap import Basemap >>> >>>