web-dev-qa-db-fra.com

Bibliothèque de fond de carte utilisant Anaconda Jupyter Notebooks - KeyError: PROJ_LIB

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?

5
RubenB

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'

7
RandyP

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'
1
Pavlo

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

0
john ed