Установка базовой карты на Mac/Python

У меня возникли проблемы с тем, чтобы базовая карта работала на Python на моем Mac.

Я продолжаю получать:

    from mpl_toolkits.basemap import basemap
ImportError: No module named basemap

Что я сделал:

brew install gdal
brew install gets
export GEOS_DIR=/usr/local/Cellar/geos/3.4.2/
basemap-1.0.7 $ python setup.py install

Я также пробовал:

basemap-1.0.7 $ cd geos-3.3.3
basemap-1.0.7/geos-3.3.3 $ export GEOS_DIR=~/
basemap-1.0.7/geos-3.3.3 $ ./configure --prefix=$GEOS_DIR
basemap-1.0.7/geos-3.3.3 $ make
basemap-1.0.7/geos-3.3.3 $ make install
basemap-1.0.7/geos-3.3.3 $ cd ..
basemap-1.0.7 $ python setup.py install

Никто из них не работал у меня. Как я могу заставить этот пакет работать на MacOS Sierra?

Ответ 1

Вам когда-нибудь удавалось заставить его работать?

Мне удалось установить базовую карту в Sierra (также используя Homebrew для ее зависимостей), следуя инструкциям здесь: http://matplotlib.org/basemap/users/installing.html

Пара замечаний, просто чтобы убедиться, что ничего не пропущено:

  • В ваших заметках вы указали brew install gets, хотя я предполагаю, что это была опечатка, и вы на самом деле имели в виду & использовал brew install geos при установке.
  • Вы уверены, что при изменении вашего .bash_profile была использована правильная версия geos? Некоторые примеры, которые я видел в Интернете, используют конкретную версию, поэтому всегда есть вероятность ошибки копирования/вставки. Со вчерашнего дня версия, которую я использовал, была 3.5.0, поэтому мой путь выглядел так: export GEOS_DIR=/usr/local/Cellar/geos/3.5.0/. Версию можно проверить, просмотрев каталог /usr/local/Cellar/geos/, чтобы узнать, какой из них установлен.
  • Я не уверен на 100%, что это имеет значение, но перезагрузили ли вы .bash_profile после его изменения? source ~/.bash_profile.

Вот полный список того, что я сделал:

brew install matplotlib
brew install numpy
brew install geos
brew install proj

Загруженный исходный tar файл Basemap 1.0.7 (https://sourceforge.net/projects/matplotlib/files/matplotlib-toolkits/), не заархивированный.

Добавил export GEOS_DIR=/usr/local/Cellar/geos/3.5.0/ в новую строку в моем .bash_profile, а затем перезагрузил его через:

source ~/.bash_profile

Из каталога неповрежденных базовых карт:

python setup.py install

Импортировал базовую карту в скрипт Python (с помощью учебника в другом месте) с import mpl_toolkits.basemap as bm и смог подтвердить, что он работает с созданной картой.

Ответ 2

Сегодня в 10.14 Мохаве я сделал:

brew install geos
pip3 install https://github.com/matplotlib/basemap/archive/master.zip

и, похоже, работает (у меня есть Python 3.6 из https://python.org с установленным matplotlib pip).

Ответ 3

После долгих попыток мне удалось установить basemap-1.1.0 на High Sierra. Управление версиями зависимостей было важно.

Я установил Python 3.6 с homebrew. Затем я создал venv. Затем я использовал pip для установки matplotlib pip install matplotlib==2.2 (3+ не будет работать).

Затем я следовал инструкциям здесь:

https://www.fsanmartin.co/mac-install-matplotlib-basemap-on-virtualenv/

И это наконец-то сработало!

Большое спасибо доброму человеку, который написал эти инструкции.

Ответ 4

У меня были проблемы с установкой Basemap на macOS Catalina. Установлены все зависимости, но сама Basemap доставляла мне неприятности.

Я завел необходимость установки с

$ pip3 install /path/to/basemap.tar.gz --user

после загрузки архива последней версии со страницы релизов.

Не уверен, что это поможет кому-то еще, но после часа пробуждения и пробных попыток, он заставил меня начать работать с GitHub (который будет собирать, но не устанавливать колесо для базовой карты), а компиляция напрямую не будет.

Ответ 5

Думаю, кому-то это может пригодиться, так как мне нужны часы, чтобы заставить работать базовую карту.

Я использую High Sierra с Python 2.7, установленным с homebrew. Следовал тому, что сказал thegsi, но тогда у меня все еще была эта ошибка

AttributeError: 'module' object has no attribute 'pyproj_datadir'

Оказалось, мне нужно использовать более раннюю версию pyproj, поэтому я просто запустил

pip install pyproj==1.9.6

а затем запустите один из примеров сценариев в папке базовой карты, и вуаля, базовая карта работает !!!