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

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

/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 дает список путей, в которых я уверен, что каталог "baseemap" находится в каталоге "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

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

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

Ответ 1

Я столкнулся с этой проблемой, и я смог ее решить, используя 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 формат базовой карты

Ответ 2

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

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

Ответ 3

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

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

Ответ 4

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

  1. Создайте поверхностный клон базовой git clone --depth 1 [email protected]:matplotlib/basemap.git (git clone --depth 1 [email protected]:matplotlib/basemap.git) или извлеките архив текущей версии.
  2. Установите все нужные библиотеки (на Ubuntu, libgeos-dev, libproj-dev, libgeos++-dev, proj-data, proj-bin, libgeos-c1v5, libgeos, libproj12, я думаю).
  3. pip install --user pyproj matplotlib geos (на самом деле не уверен, geos ли geos).

Теперь здесь, где мне пришлось немного импровизировать. Когда я устанавливаю базовую карту с помощью python setup.py install, она создает новый каталог egg среди моих пакетов Python. Этот каталог содержит подкаталог mpl_toolkits который дублирует отдельный каталог 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.

Ответ 5

Я последовал за этим ответом:

fooobar.com/questions/1259142/...

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

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

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

Ответ 6

Загрузите его отсюда и установите вручную. Убедитесь, что вы загружаете правильную версию (то есть, если вы Python3.6, то скачайте basemap ‑ 1.2.0 ‑ cp36 ‑ cp36m ‑ win_amd64.whl)

Ссылка: fooobar.com/questions/995448/...

Ответ 7

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