Ошибка импорта базовой карты в PyCharm - KeyError: 'PROJ_LIB' - PullRequest
0 голосов
/ 12 сентября 2018

Я пытался использовать пакет Basemap для построения карты с помощью PyCharm, но у меня что-то не так с

from mpl_toolkits.basemap import Basemap`

И обратная трассировка следующим образом:

Traceback (most recent call last):
File "/Users/yupeipei/anaconda3/lib/python3.6/site-packages/IPython/core/interactiveshell.py", line 2963, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-4-0a24a3a77efd>", line 7, in <module>
    from mpl_toolkits.basemap import Basemap
  File "/Applications/PyCharm.app/Contents/helpers/pydev/_pydev_bundle/pydev_import_hook.py", line 20, in do_import
    module = self._system_import(name, *args, **kwargs)
  File "/Users/yupeipei/anaconda3/lib/python3.6/site-packages/mpl_toolkits/basemap/__init__.py", line 146, in <module>
    pyproj_datadir = os.environ['PROJ_LIB']
  File "/Users/yupeipei/anaconda3/lib/python3.6/os.py", line 669, in __ getitem__
    raise KeyError(key) from None
KeyError: 'PROJ_LIB'

Я запутался в этой ошибке на PyCharm, потому что один и тот же скрипт правильно работает на Jupyter или Spyder! Среда в PyCharm - это ../anaconda3/lib/python3.6, где то же самое от anaconda.

Кто-нибудь встречал эту ошибку раньше?

Может ли кто-нибудь помочь мне решить эту ошибку?

Ответы [ 7 ]

0 голосов
/ 20 февраля 2019

Ответ от Github, и он работал для меня. https://github.com/conda-forge/basemap-feedstock/issues/30

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
0 голосов
/ 16 мая 2019

Вы должны установить путь к Proj lib, как и в более новой версии, этот путь был заменен. Напишите две строчки кода ниже перед импортом matplot_toolkits

  ### For Window's Users
      import os
      os.environ['PROJ_LIB'] = r'C:\Users\XXXXX\Anaconda3\pkgs\proj4-5.2.0- 
      ha925a31_1\Library\share'

Чтобы найти путь к Proj_lib, просто найдите epsg, а затем скопируйте местоположение этого файла epsg и вставьте в proj_lib. Ваша проблема будет решена.

  ### For Linux's Users
  import os
  os.environ['PROJ_LIB'] = r'/home/XXXXXX/anaconda3/pkgs/proj4-5.2.0- 
  he6710b0_1/share/proj'
0 голосов
/ 13 декабря 2018

Для Windows 10 с Anaconda + Python 3.71 (и я уверен, что другие версии Python 3 и Windows 7/8), вы можете указать Basemap, где файл "epsg" в Proj4 будет успешным. У меня нет «окружения» или чего-то еще, потому что это слишком большая работа, чтобы понять - поэтому у меня не было области anaconda \ share \ proj (насколько я мог понять, почему у меня ее не было).

Но для Basemap нужен файл "epsg", поищите его в каталоге Anaconda в Windows Explorer. Если он не находит его, установите Proj4, открыв «Anaconda Prompt» и введя:

conda install -c conda-forge proj4

Если он его находит, он должен выглядеть примерно так:

C: \ Utilities \ Python \ Anaconda \ Library \ Share (это там, где был мой, а также \ pkgs \ мест, где, как мне кажется, он помещает сам пакет - и те могут работать, если нужно) быть, я использовал их сначала, но библиотека должна работать через обновления лучше (возможно)).

Используйте следующий код перед импортом Basemap, и он будет работать. Устанавливает переменную окружения PROJ_LIB, где бы ни находился epsg, и тогда Basemap может быть счастливым.

import os
os.environ["PROJ_LIB"] = "C:\\Utilities\\Python\\Anaconda\\Library\\share"; #fixr
from mpl_toolkits.basemap import Basemap

В качестве приятного бонуса, чтобы получить в высоком разрешении данные базовой карты, которые Anaconda не включила в установку базовой карты, введите «Anaconda Prompt»:

conda install -c conda-forge basemap-data-hires
0 голосов
/ 23 ноября 2018

Proj4 - простое решение, которое можно исправить на pycharm - перейти в настройки-> интерпретатор проекта -> + -> написать proj4 в поле поиска и установить.

0 голосов
/ 23 ноября 2018

Я столкнулся с той же проблемой. Я установил anaconda и установил conda install -c anaconda basemap.

Я использовал Anaconda, встроенную в IDE с именем "Spyder". Spyder лучше, чем pycharm. Единственная проблема со спайдером - отсутствие интеллигентности.

Я решил проблему с Proj4, установив путь.

Другая проблема, возникающая при перезапуске ядра при загрузке набора файлов большего размера .json.

Я использую Notepad ++ и редактор 010 для повторного сохранения файла небольшими порциями и, наконец, я объединил все выходные данные.

0 голосов
/ 19 ноября 2018

Это, кажется, общая проблема.Есть несколько сообщений об ошибках

Я сам столкнулся с этой ошибкой, и для меня было решение удалить базовую карту 1.2, затем установить базовую карту 1.1 из старого файла колеса, который все еще лежал у меня, и затем установить базовую карту1,2 снова.Честно говоря, я понятия не имею, почему это сработало.

Также из вышеперечисленных вопросов есть множество других решений, о которых люди сообщали, что работают на них.Надеюсь, что один из них подходит и здесь.

0 голосов
/ 13 сентября 2018

После комментария mewahl я добавил в свой .bashrc (я использую bash):

export PROJ_LIB = / путь / к / вашему / установке / из / anaconda / поделиться / proj /

и теперь базовая карта (и другие работают).

...