Установка базовой карты на 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
а затем запустите один из примеров сценариев в папке базовой карты, и вуаля, базовая карта работает !!!