Модуль базовой карты Python невозможно импортировать

у меня проблемы с импортом модуля базовой карты mpl_toolkits в python. Вот что я получаю, когда управляю test.py скрипт из каталога модуля:

/usr/lib/python2.7/dist-packages/mpl_toolkits/basemap$ python test.py
Traceback (most recent call last):
File "test.py", line 1, in <module>
from mpl_toolkits.basemap import Basemap, shiftgrid
ImportError: No module named basemap

Я не могу получить его с sys.path дает список путей, где я уверен, что каталог " базовая карта "находится в каталоге" mpl_toolkits". Нет никаких проблем import mpl_toolkits. Вот что я пробовал, чтобы вручную добавить путь, и результат:

>>> import sys
>>> sys.path.append('/usr/lib/python2.7/dist-packages/mpl_toolkits/basemap')
>>> import basemap
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "basemap/__init__.py", line 30, in <module>
from mpl_toolkits.basemap import pyproj
ImportError: No module named basemap

Я попытался удалить переустановить базовую карту из источника (внимательно следуя эти instructions), из apt-get, из conda, но это ничего не меняет: я не могу импортировать базовую карту.

Спасибо за помощь

6 ответов


я столкнулся с этой проблемой, и я смог решить ее с помощью anaconda

после активации моего профиля

source activate MyProfileName
conda install basemap

from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
# setup Lambert Conformal basemap.
# set resolution=None to skip processing of boundary datasets.
m = Basemap(width=12000000,height=9000000,projection='lcc',
            resolution=None,lat_1=45.,lat_2=55,lat_0=50,lon_0=-107.)
m.bluemarble()
plt.show()

BlueMarble format of basemap


Я был в той же ситуации до минуты назад, установив его через это сделал трюк:

sudo apt-get install libgeos-3.5.0
sudo apt-get install libgeos-dev
sudo pip install https://github.com/matplotlib/basemap/archive/master.zip

У меня была та же проблема; попытка получить доступ к базовой карте с помощью sys приведет к этой ошибке. Но это сработало для меня:

import mpl_toolkits
mpl_toolkits.__path__.append('/usr/lib/python2.7/dist-packages/mpl_toolkits/')
from mpl_toolkits.basemap import Basemap

я смог заставить базовую карту работать через следующие шаги. Обратите внимание, что я сделал --user установить.

  1. создать мелкий клон базовой (git clone --depth 1 git@github.com:matplotlib/basemap.git) или извлечь tarball текущей версии.
  2. установите необходимые необходимые библиотеки (на Ubuntu,libgeos-dev, libproj-dev, libgeos++-dev, proj-data, proj-bin, libgeos-c1v5, libgeos, libproj12, Я думаю).
  3. pip install --user pyproj matplotlib geos (на самом деле не уверен, если geos is необходимый.)

теперь, вот где мне пришлось немного импровизировать. Когда я устанавливаю basemap с помощью python setup.py install, он создает новый каталог egg среди моих пакетов Python. Этот каталог содержит mpl_toolkits подкаталог, который дублирует отдельные по библиотек matplotlib.

вместо этого я сделал

python setup.py build_ext --inplace
cp -a lib/mpl_toolkits/basemap /my/python/packages/dir/mpl_toolkits/basemap
cp lib/_geoslib.so /my/python/packages/dir

теперь я могу запускать примеры, такие как simpletest.py.


я последовал этому ответу:

https://stackoverflow.com/a/43234894/3818277

хотя я мог неправильно установить mpl_toolkits (или я не знаю), в моем случае я узнал, что базовая карта находится в pymodules так:

    mpl_toolkits.__path__.append('/usr/lib/pymodules/python2.7/mpl_toolkits/')
    from mpl_toolkits.basemap import Basemap

Так что это сработало для меня на ubuntu 14.04 LTS.


Вам также может понадобиться установить setuptools. Это позволяет mpl_toolkits быть пакетом пространства имен, который может охватывать несколько каталогов (т. е. как matplotlib, так и basemap).