Ошибка импорта базовой карты в PyCharm - KeyError: 'PROJ_LIB'

Я пытался использовать пакет 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.

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

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

Ответ 1

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

export PROJ_LIB =/path/to/your/instalation/of/anaconda/share/proj/

и теперь basemap (и другие работают).

Ответ 2

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

Но, что хочет Basemap, так это файл "epsg", найдите его в каталоге Anaconda с помощью проводника Windows. Если он не находит его, установите 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

Ответ 3

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

  ### For Window 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 Users
  import os
  os.environ['PROJ_LIB'] = r'/home/XXXXXX/anaconda3/pkgs/proj4-5.2.0- 
  he6710b0_1/share/proj'

Ответ 4

Ответ от Github, и он работал для меня.

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

Ответ 5

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

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

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

Ответ 6

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

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

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

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

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

Ответ 7

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