J'essaie d'installer et d'importer la bibliothèque Basemap dans mon bloc-notes Jupyter, mais le message d'erreur suivant s'affiche:
KeyError: 'PROJ_LIB'
Après quelques recherches en ligne, je comprends que je dois installer Basemap sur un environnement distinct à Anaconda. Après avoir créé un nouvel environnement et installé Basemap (ainsi que toutes les autres bibliothèques pertinentes), j'ai activé l'environnement. Mais lors de l'importation de Basemap, je reçois toujours le même KeyError.
Voici ce que j'ai fait dans mon terminal MacOS:
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
Ensuite, dans Jupyter Notebook, je lance ce qui suit:
from mpl_toolkits.basemap import Basemap
Quelqu'un peut-il me dire pourquoi cela entraîne une erreur KeyError?
Nécessité de définir la variable d’environnement PROJ_LIB avant de démarrer votre ordinateur portable ou en python avec os.environ['PROJ_LIB'] = '<path_to_anaconda>/share/proj'
Réf. Erreur d'importation de fond de carte dans PyCharm —— KeyError: 'PROJ_LIB'
Dans la ligne de commande Windows 10: recherchez d’abord le répertoire dans lequel le fichier epsg est stocké:
where /r "c:\Users\username" epsg.*
...
c:\Utilisateurs\nom d'utilisateur\AppData\Local\conda\conda\envs\envname\Library\share \ epsg
...
alors soit en ligne de commande:
activate envname
SET PROJ_LIB=c:\Users\username\AppData\Local\conda\conda\envs\envname\Library\share
(assurez-vous qu’il n’y a pas de interligne en fin de chemin dans le chemin!)
jupyter notebook
ou ajoutez ceci à votre cahier Jupyter (comme suggéré par john ed):
import os
os.environ['PROJ_LIB'] = r'c:\Users\username\AppData\Local\conda\conda\envs\envname\Library\share'
Le problème se produit lorsque l'emplacement de fichier "epsg" et que PROJ_LIB a été modifié pour les versions récentes de python, mais ils ont d'une manière ou d'une autre oublié de mettre à jour le fichier init . Py pour Basemap. Si vous avez installé python avec anaconda, il s'agit d'un emplacement possible pour votre fichier espg: C:\Utilisateurs (xxxx)\AppData\Local\Continuum\anaconda3\pkgs\proj4-5.1.0-hfa6e2cd_1\Library\share Vous devez donc ajouter ce chemin au début de votre code dans spyder ou dans le champ que vous utilisez.
importation os
os.environ ['PROJ_LIB'] = r'C:\Utilisateurs (xxxx)\AppData\Local\Continuum\anaconda3\pkgs\proj4-5.1.0-hfa6e2cd_1\Library\share '
depuis mpl_toolkits.basemap import Basemap