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é