J'ai essayé d'importer le fond de carte comme suit en Python:
Traceback (most recent call last): File "<ipython-input-16-880204a64918>", line 2, in <module> from mpl_toolkits.basemap import Basemap File "C:\Users\bakhadher\AppData\Local\Continuum\anaconda3\lib\site-packages\mpl_toolkits\basemap\__init__.py", line 155, in <module> pyproj_datadir = os.environ['PROJ_LIB'] File "C:\Users\bakhadher\AppData\Local\Continuum\anaconda3\lib\os.py", line 678, in __getitem__ raise KeyError(key) from None KeyError: 'PROJ_LIB'
et j'obtiens l'erreur suivante:
from mpl_toolkits.basemap import Basemap
3 Réponses :
De là: https://github.com/ conda-forge / basemap-feedstock / issues / 30 # issuecomment-423512069
import os import conda conda_file_dir = conda.__file__ conda_dir = conda_file_dir.split('lib')[0] proj_lib = os.path.join(os.path.join(conda_dir, 'share'), 'proj') os.environ["PROJ_LIB"] = proj_lib from mpl_toolkits.basemap import Basemap```
J'ai essayé l'approche et cela donne l'erreur "FileNotFoundError: [Errno 2] Aucun fichier ou répertoire de ce type: 'D: \\ Anaconda_Python \\ share \\ proj \\ epsg'" Et en fait, je n'ai pas de dossier 'proj' dans cette localisation, même si j'ai installé le package proj
Cela a fonctionné pour moi avec anaconda3 sur Linux et OSX. Je ne sais pas pourquoi, mais sous OSX, le problème ne se produisait que lorsque le script bash qui invoquait le programme python était appelé par cron; l'appel du script bash à partir de la ligne de commande a fonctionné sans le même problème.
import os os.environ['PROJ_LIB'] = '/glade/u/home/lixujin/work/anaconda3/envs/AC_tools/share/proj'
"$CONDA_PREFIX/share/proj"
conda install -c conda-forge proj4 conda install basemap
Où dois-je écrire "$ CONDA_PREFIX / share / proj" dans l'invite Anaconda ou dans Spyder? Les deux donnent des erreurs. Si je co à "D: \ Anaconda_Python \ share", il n'y a pas de dossier "proj"
J'ai conda, généralement j'ai cette erreur et ma solution était:
import os os.environ['PROJ_LIB'] = '/home/YOUR_USER/anaconda3/share/proj' from mpl_toolkits.basemap import Basemap import cartopy.crs as crs
Lien utile ici: github.com/matplotlib/basemap/issues/419
Cela est dû à l'installation de conda dans l'environnement de base. Vous avez donc soit a) définissez PROJ_LIB dans votre environnement (~ / .bashrc), soit b) kludge PROJ_LIB dans votre code Python, avant d'importer depuis le fond de carte ou c) réinstallez le fond de carte sous un environnement conda activé