Модуль базовой карты 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()
Я был в той же ситуации до минуты назад, установив его через это сделал трюк:
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
установить.
- создать мелкий клон базовой (
git clone --depth 1 git@github.com:matplotlib/basemap.git
) или извлечь tarball текущей версии. - установите необходимые необходимые библиотеки (на Ubuntu,
libgeos-dev
,libproj-dev
,libgeos++-dev
,proj-data
,proj-bin
,libgeos-c1v5
,libgeos
,libproj12
, Я думаю). -
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).